在机器A上,免密登录到 机器B
###操作步骤:
1.在机器A上生成公私钥对:(这里生成非对称算法RSA的公钥和私钥)
ssh-keygen -t rsa
2.在机器A上将公钥上传到机器B,并让机器B上的用户zhangsan登录,(我的zhangsan@remote_ip)
ssh-copy-id -i [identity_file] [user@]hostname
如:
ssh-copy-id -i ~/.ssh/id_rsa.pub zhangsan@remote_ip
-i ~/.ssh/id_rsa.pub
可选,可以不写
zhangsan@remote_ip
机器B上的用户
###注意:
步骤1说明:
● 输入指令执行以后,会出现一堆提示,一路回车即可,不要犹豫。
● 该命令执行完,会在~/.ssh目录生成两个文件:
id_rsa :私钥
id_rsa.pub :公钥 (打开可看到公钥,此时该文件后面无zhangsan@remote_ip)
● 该命令还可以用ssh-keygen
替换,该命令和上面效果相同
步骤2说明:
● 这里我用的是
zhangsan@remote_ip
,你得可能是root@192.168.91.135
,或glowd@remote_ip
,总的就是你的远程登录用户名加ip。
● 该命令执行过程中,出现(yes/no)?,选择yes,出现password:输入你的zhangsan@remote_ip
登录密码。
● 该命令执行完后,打开id_rsa.pub可以看到,内容最后添加了zhangsan@remote_ip
● 该命令还可以用scp -P 22 ~/.ssh/id_rsa.pub zhangsan@remote_ip:~/
替换,
将公钥通过scp拷贝到服务器上,然后追加到~/.ssh/authorized_keys文件中,这种方式比较麻烦。
● 该命令还可以用:
cat ~/.ssh/id_rsa.pub | ssh -P 22 zhangsan@remote_ip ‘cat >> ~/.ssh/authorized_keys’
替换,即解释为:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp -P 22 ~/.ssh/id_rsa.pub zhangsan@remote_ip:~ 其中22为端口
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
###其他说明:
.ssh目录的权限为700,其下文件authorized_keys和私钥的权限为600。否则会因为权限问题导致无法免密码登录。
这样修改:
chmod 755 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
###参考内容:
ssh免密码登录配置方法,(图示加命令)
ssh免密码登录全过程
Linux下实现免密码登录(超详细)
文中若有错误地方请指正。另外,若某一步卡住了不要死扣,搜索其他资料看看