A机:自己的电脑 B机:需要远程登录的客户端或服务器
这里即A机想通过ssh免密码登录到B机。
ssh 无密码登录需要使用到公钥和私钥。一般是在A机上生成公钥/私钥对,然后将公钥添加到B机中。
1.首先需要在A机下生成公钥/私钥对
ssh-keygen -t rsa -f id_rsa -P ''
参数:-f 生成的文件名 -P 表示密码,-P ” 表示空密码,会在 .ssh 目录下生成 id_rsa 和 id_rsa.pub。
注:因为在我的 .ssh 目录下还有其他公钥/私钥对,例如用来连接github的公钥/私钥对,如果你也有其他公钥/私钥对,为了混淆,建议进行了重新命名。如果重命名了不会生成在 .ssh 目录中,就需要手动把 id_rsaxxx 私钥文件移动到当前用户的 .ssh 目录下。
2.将产生的公钥复制到 B 机的用户目录下
scp id_rsa.pub 登录用户名@IP地址(或域名):/home/用户名/id_rsa.pub
3.先通过 A 机使用密码登录 B 机,将公钥追加到 authorzied_keys 中
远程登录命令:
ssh -l 用户名 IP地址(或域名)
追加公钥到 authorzied_keys中 :
cat id_rsa.pub >> .ssh/authorized_keys
注:authorzied_keys 的权限要是 600 。
注:如果是服务器,最好把密码登录关闭。
4.测试
如果是默认的文件名,则可以去掉-i 参数
ssh -i “私钥文件” user@hostname