ssh免输入密码登录

来源:互联网 发布:费米估算法的原理 编辑:程序博客网 时间:2024/05/17 01:59

[qingxu@login1.cm3 ~]$  ssh host.b

ssh免输入密码登录

场景:服务器A 采用ssh 登录服务器B,没有任何特殊设置情况下,采用ssh host.b 会出现提示Password:  让输入密码。如何可以不手工输入密码?

解决方案:

  •   生成ssh公钥和私钥

[qingxu@login1.cm3 .ssh]$ ssh-keygen  -t dsa

这里-t dsa表示采用dsa加密方式,回车后会让你输入私钥,最后在.ssh目录下生成两个文件id_dsa和id_dsa.pub,分别表示私钥和公钥。

将公钥copy到要登录的机器B上去,并在B的.ssh目录下,然后将id_dsa.pub的内容追加到authorized_keys文件中。

cat id_dsa.pub >> authorized_keys

此时,B服务器下有两个文件,id_dsa.pub和 authorized_keys。

此时我们可以通过ssh host.b登录B服务器了,不会提醒Password了,不过。这个时候你仍然会看到这样的信息。


会让你输入是否连接b服务器,输入yes,则会在A服务器本地生成一个known_hosts文件,内部是A访问过的服务器,这个文件的作用是:发现B服务器的公钥和本地known_hosts的公钥不一致,就会提醒你是否连接上去。一般输入一次,以后就不会再提示了。

接着会出现以下信息:

Enter passphrase for key '/home/qingxu/.ssh/id_dsa': 

仍然需要你输入私钥。而且以后不管你登陆几次,都会提醒你输入私钥,没有达到我们的要求,怎么办呢?

  • 使用ssh-agent和ssh-add管理密钥

ssh-agent是用于管理密钥,ssh-add用于将密钥加入到ssh-agent中,SSH可以和ssh-agent通信获取密钥,这样就不需要用户手工输入密码了。

eval `ssh-agent`ssh-addEnter passphrase for /home/qingxu/.ssh/id_dsa: 

不过由于每次登录都需要设置一次,所以最好将命令放到~/.bash_profile中。

另外,可以采用keychain来处理这一步,参考:

http://www.ibm.com/developerworks/cn/linux/security/openssh/part1/index.html

http://www.ibm.com/developerworks/cn/linux/security/openssh/part2/

0 0