在服务器上部署工程项目,机器很多,通过中间服务器登录每次都要输入密码,感觉很麻烦,现在机器都定下来了,我决定把中间服务器和目标服务器改为公钥/私钥认证, 就不需要每次登录都需要输入密码了。
1:如果中间服务器你是以root登录的,想以root登录到目标服务器
1.1:在中间服务器上 cd /root/.ssh
该文件夹下应该有id_rsa.pub,这是公钥,如果没有该文件就执行 ssh-keygen -t rsa ,程序会询问你存放路径,两次回车,就会生成id_rsa.pub文件,然后
scp -P 22 ./id_rsa.pub root@10.0.0.1:/root/.ssh/id_rsa_bank.pub
输入root密码
拷贝到目标服务器的文件名称最好不要用id_rsa.pub,以免覆盖目标服务器上已有的,
1.2:登录到目标服务器,cd /root/.ssh
如果该文件夹下已经存在authorized_keys这个文件 ,cat id_rsa_bank.pub >> authorized_keys,这是把 id_rsa_bank.pub的内容增加到authorized_keys
如果不存在 cp id_rsa_bank.pub authorized_keys,然后rm -rf id_rsa_bank.pub
现在中间服务器就可以不需要密码以root权限登录到目标服务器了
2:如果中间服务器你是以root登录的,想以某个用户,比如tom,登录到目标服务器
2.1:在中间服务器上 cd /root/.ssh
如果没有id_rsa.pub,执行ssh-keygen -t rsa,然后
scp -P 22 ./id_rsa.pub tom@10.0.0.1:/home/tom/.ssh/id_rsa_bank.pub
如果提示没有.ssh文件夹,以tom登录到目标表服务器 mkdir /home/tom/.ssh
2.2:在目标服务器上(以tom用户登录)
cd /home/tom/.ssh
cat id_rsa_bank.pub >> authorized_keys
然后chmod 600 authorized_keys
然后chmod 700 /home/tom/.ssh
现在中间服务器就可以不需要密码以tom用户登录到目标服务器了
3:如果你是以某个用户,比如sun用户登录的中间服务器,想以root登录到目标服务器
3.1:在中间服务器上 cd /home/sun/.ssh
如果没有id_rsa.pub,执行ssh-keygen -t rsa
然后 scp -P 22 ./id_rsa.pub root@10.0.0.1:/root/.ssh/id_rsa_bank.pub:3.2:登录到目标服务器,cd /root/.ssh
然后 cat id_rsa_bank.pub >> authorized_keys
现在中间服务器就可以不需要密码以root权限登录到目标服务器了
4:如果你以sun用户登录的中间服务器,想以tomt登录到目标服务器 :4.1:在中间服务器上 cd /home/sun/.ssh
如果没有id_rsa.pub,执行ssh-keygen -t rsa
然后 scp -P 22 ./id_rsa.pub tom@10.0.0.1:/home/tom/.ssh/id_rsa_bank.pub
4.2:然后以tom登录到目标服务器
cd /home/tom/.ssh
cat id_rsa_bank.pub >> authorized_keys
然后chmod 600 authorized_keys
然后chmod 700 /home/tom/.ssh
现在中间服务器就可以不需要密码以tom用户登录到目标服务器了