Linux免密码登录
在Linux系统中,免密码登录是一种便捷的SSH登录方式,通过使用公钥和私钥对进行身份验证,这种方式不仅提高了工作效率,还增强了系统的安全性,本文将详细介绍如何在Linux系统中实现免密码登录,包括生成密钥、配置公钥以及测试登录等步骤。
一、生成密钥对
在Linux系统中,可以使用ssh-keygen
命令来生成密钥对,以下是具体操作步骤:
1、打开终端:打开一个终端窗口。
2、生成密钥对:运行以下命令生成一个新的SSH密钥对:
ssh-keygen -t rsa -b 2048 -C "your_email@example.com"
-t rsa
指定密钥类型为RSA,-b 2048
指定密钥长度为2048位,-C "your_email@example.com"
可选地为密钥添加注释信息,按Enter键接受默认文件位置和文件名(通常为~/.ssh/id_rsa
)。
3、设置密码短语:系统会提示你输入密码短语(passphrase),如果你不想使用密码短语,可以直接按Enter键跳过,但出于安全考虑,建议设置一个强密码短语。
4、查看生成的密钥:生成完成后,你可以使用以下命令查看生成的私钥和公钥:
ls ~/.ssh/id_
二、配置公钥
将公钥复制到目标服务器上,以便实现免密码登录,有几种方法可以实现这一点:
方法一:使用ssh-copy-id
命令
1、运行命令:在本地机器上运行以下命令,将公钥复制到远程服务器上:
ssh-copy-id remote_username@server_ip_address
ssh-copy-id root@192.168.91.135
2、输入密码:系统会提示你输入远程服务器的密码,输入密码后,公钥将被自动追加到远程服务器的~/.ssh/authorized_keys
文件中。
方法二:手动复制公钥
1、显示公钥:在本地机器上,使用以下命令显示公钥:
cat ~/.ssh/id_rsa.pub
2、复制公钥:将显示的公钥内容复制到剪贴板。
3、登录远程服务器:使用SSH登录到远程服务器,并创建一个.ssh
目录(如果尚不存在):
mkdir -p ~/.ssh chmod 700 ~/.ssh
4、创建并编辑authorized_keys
文件:在远程服务器上,创建并编辑authorized_keys
文件:
cat > ~/.ssh/authorized_keys
然后将复制的公钥内容粘贴进去,并保存文件,设置适当的权限:
chmod 600 ~/.ssh/authorized_keys
三、测试免密码登录
完成上述步骤后,你可以尝试从本地机器SSH登录到远程服务器,无需输入密码:
ssh remote_username@server_ip_address
如果一切设置正确,你应该能够直接登录到远程服务器而不需要输入密码。
四、禁用密码验证(可选)
为了增强安全性,可以禁用SSH的密码验证,这样,只有拥有公钥的用户才能登录到服务器,在进行此操作之前,请确保你已经设置了免密码登录,并且你拥有sudo权限或root权限。
1、编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config
2、修改配置:找到以下指令并进行修改:
PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
3、重启SSH服务:保存文件并退出编辑器,然后重启SSH服务:
在Ubuntu或Debian上:
sudo systemctl restart ssh
在CentOS或Fedora上:
sudo systemctl restart sshd
至此,你已经成功配置了Linux免密码登录,这将大大提高你在多台服务器之间切换的效率,并减少因密码输入错误导致的问题,使用公钥认证也比传统的密码认证更加安全,因为它不易被暴力破解。
各位小伙伴们,我刚刚为大家分享了有关“linux 免密码登录”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!