码迷,mamicode.com
首页 > 其他好文 > 详细

服务器间访问不用密码的设置

时间:2014-08-06 22:57:22      阅读:395      评论:0      收藏:0      [点我收藏+]

标签:linux

经常在服务器程序(脚本)里面,或在命令行中,执行ssh,scp命令,会碰到要求密码的情况,很不方便!

如果在两台相互信任,其实步骤挺简单,假设要从主机1上执行,ssh,scp操作。

  • 主机1:host1    用户1:user1
  • 主机2:host2    用户2:user2

一:在主机1上执行下列操作:

1./home/user1/.ssh/ 目录下,执行:ssh-keygen –t id_rsa

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user1/.ssh/id_rsa):
/home/user1/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user1/.ssh/id_rsa.
Your public key has been saved in /home/user1/.ssh/id_rsa.pub.
The key fingerprint is:
12:a5:55:cc:1e:59:34:61:a2:41:ce:92:5a:a8:9d:ed user1@host1
2.一路默认回车,生成id_rsa.pub文件

3.cat id_rsa.pub >> authorized_keys 


二:在主机2上执行下列操作:

1.拷贝主机1上的authorized_keys文件到/home/user2/.ssh/目录下。

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwvAv1SKPIkO2ucdmuz13RkVvSuZRKg/FGllbje/a2fDG2AYSdSKQSqe3GO/40YzA3BnVwBEY+cOKbTj9gpVWLf7bi1jZBDokeO3TWdQnzLfOObA4+F3EunwruyqekLTkAEpmoM400ndqmV5VGi1uvRl8gFgVes6pGkZAorzPll7vCCX4DC1R9XK8/VmtLm7Z4egR/UkPoiA9t7u/K3tdjn28DhPSEWnV1ggZZ30DxB14Mtw0+ZjP5joTISFXVBVDxbuUiibuS+2TmjVM3i20Ep1LTfzwFwYBbSGbReRIdowGsCaFK9zs6WIY84SRWR/mvIJOZQhbU1N/dQSnHobICQ== user1@host1
2.更改目录访问权限:chmod 755 ~/.ssh/


三:最后在主机1上执行:

1. ssh user2@host2

2. scp user2@host2:/var/log/*.*   .

就不需要输入密码了。


NOTE:

首先ssh-keygen -t rsa命令生成了一个密钥和一个公钥, 而且密钥可以设置自己的密码。可以把密钥理解成一把钥匙, 公钥理解成这把钥匙对应的锁头,把锁头(公钥)放到想要控制的server上, 锁住server, 只有拥有钥匙(密钥)的人, 才能打开锁头, 进入server并控制。而对于拥有这把钥匙的人, 必需得知道钥匙本身的密码,才能使用这把钥匙 (除非这把钥匙没设置密码), 这样就可以防止钥匙被了配了(私钥被人复制)。当然, 这种例子只是方便理解罢了,拥有root密码的人当然是不会被锁住的, 而且不一定只有一把锁(公钥), 但如果任何一把锁, 被人用其对应的钥匙(私钥)打开了, server就可以被那个人控制了。
所以说, 只要你曾经知道server的root密码, 并将有root身份的公钥放到上面, 就可以用这个公钥对应的私钥"打开"server, 再以root的身分登录, 即使现在root密码已经更改! 


如果想控制n个机器, 那就需要n对钥匙(密钥和公钥), ssh-keygen命令可以随意更改钥匙对的名字, 最好取容易识别的文件名,比如: 
# ssh-keygen -t rsa 
Generating public/private rsa key pair. 
Enter file in which to save the key(/root/.ssh/id_rsa): 
/root/.ssh/id_rsa_192.168.10.1 

...... 


这样私钥和公钥的名字分别就是: 

id_rsa_192.168.10.1  和 id_rsa_192.168.10.1.pub 

然后将 id_rsa_192.168.0.1.pub 文件的内容, 追加到服务器的~/.ssh/authorized_keys文件中, 


最后, 在本地用ssh命令的 -i 参数指定本地密钥, 并登录: 
# ssh -i /root/.ssh/id_rsa_192.168.10.1 192.168.10.1

如果密钥设置了密码, 就用密钥的密码登录, 没设密码, 就直接登录进去了。scp也是一样。

服务器间访问不用密码的设置,布布扣,bubuko.com

服务器间访问不用密码的设置

标签:linux

原文地址:http://blog.csdn.net/jerry_1126/article/details/38407407

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!