在Linux系统的日常管理中,频繁地输入密码进行SSH登录不仅繁琐,还容易降低工作效率。幸运的是,通过一些简单的配置,我们可以实现SSH的无密码登录。本文将详细介绍如何在Linux上设置SSH以进行无密码登录。
一、生成SSH密钥对
首先,在本地机器上生成SSH密钥对,包括一个公钥和一个私钥。使用ssh-keygen命令可以轻松完成这一步骤:
- 执行命令:
ssh-keygen -t rsa,系统会提示输入文件保存路径和密码,这里我们可以直接按回车键3次使用默认设置。 - 这将在
~/.ssh/目录下生成id_rsa(私钥)和id_rsa.pub(公钥)两个文件。
二、上传公钥至远程服务器
接下来,我们需要将生成的公钥上传到远程服务器的~/.ssh/authorized_keys文件中。这一步可以使用ssh-copy-id命令来实现:
- 执行命令:
ssh-copy-id 用户名@远程服务器IP地址。例如,如果要将公钥上传到用户名为user,IP地址为192.168.101.121的服务器,命令将是:ssh-copy-id user@192.168.101.121。 - 执行此命令后,本地机器的公钥内容会被追加到远程服务器的
authorized_keys文件中。
三、设置正确的文件权限
为了确保免密登录能够正常工作,需要设置正确的文件权限:
.ssh目录的权限应该是700。authorized_keys文件的权限应该是600。
可以使用以下命令来设置权限:
chmod -R 700 ~/.ssh/chmod 600 ~/.ssh/authorized_keys
四、重启SSH服务
需要重启SSH服务以使更改生效。使用以下命令重启SSH服务:
sudo service sshd restart(或sudo systemctl restart ssh)
五、测试无密码登录
最后,测试免密登录是否成功。尝试使用SSH命令连接到远程服务器,如果不需要输入密码即可登录,说明免密登录设置成功。例如,连接到远程服务器的命令是:ssh user@192.168.101.121。

通过以上步骤,你就可以轻松地在Linux上设置SSH无密码登录,从而大大提高工作效率。如果你在管理多台Linux服务器,这种方法将尤其有用。