一、引言

在网络可达情况下,通过SSH可以登录到任何具有已知账号的Linux主机系统,当然免不了经过密码认证。对于Linux研发人员,可能需要经常登录到本地或远程的Linux主机服务器,如果每次操作都进行密码认证肯定会极大影响工作效率,下面详细描述如何使用rsa密钥进行免认证的SSH远程登录。

ssh免密码登陆(免认证的SSH远程登录)(1)

二、免认证SSH登录设置

首先查看本地系统的主目录下是否存在.ssh/id_rsa.pub这个密钥文件,如果有的话直接使用,如果没有则需要通过ssh-keygen命令重新生成一个,过程如下:

ssh免密码登陆(免认证的SSH远程登录)(2)

说明:如果密钥文件已经存在了,不需要再生成一次,也不推荐,否则以前设置过的免认证主机就得重新设置了。

然后将密钥文件拷贝到服务器Linux系统备用:

$ scp .ssh/id_rsa.pub root@server_ip_addr:/root

SSH登录到服务器Linux系统(这时手动登录还需要密码认证的):

ssh免密码登陆(免认证的SSH远程登录)(3)

查看/root/.ssh/authorized_keys文件是否存在,如果存在,将密钥内容直接附加到该文件尾部即可:

$ cat id_rsa.pub >> .ssh/authorized_keys

如果/root/.ssh/authorized_keys文件不存在,则直接将id_rsa.pub改名成authorized_keys就行:

$ mv id_rsa.pub .ssh/authorized_keys

然后退出服务器Linux系统,再尝试进行ssh登录或是scp拷贝文件,都无需再要求输入密码认证了。

如果需要通过脚本进行自动化远程登录,参见:Linux交互Shell脚本实例

,