使用ssh相关命令,如scp等的时候,输入密码是很麻烦的事,而且有时候需要做自动化操作,这个时候还要人手动输入密码就没法玩了,我们可以通过配置rsa私钥和公钥的方式来免密ssh登录。
也可以直接使用sshpass命令直接交互,但是不建议。
假设有两台机器,实现A到B的免密登录:
hostA:192.168.11.1
hostB:192.168.11.2
先修改目标主机的/etc/ssh/sshd_config得配置,确保运行相应用户远程登录
ssh-keygen -t rsa
一路回车,最后会生成秘钥对:
Your identification has been saved in /home/test/.ssh/id_rsa.
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
ssh-copy-id -p 22 -i ~/.ssh/id_rsa.pub [email protected]
# 然后会让输入密码
这时候登录主机B,会发现在/home/test/.ssh/目录下多个文件authorized_keys。这个时候A已经可以免密登录到B了
这一步也可以使用scp命令将id_rsa.pub拷贝过来,然后将id_rsa.pub的内容吧追加到/home/test/.ssh/authorized_keys
cat id_rsa.pub >> /home/test/.ssh/authorized_keys
这个是单向的,B要免密登录到A的话反向操作一遍就可以了。