SSH无密码登录

一直都有用到这个,但是每次用都要去查一下,干脆现在记下来。

除了通过交互式的方式输入用户名和密码以为,SSH中还可以通过一种“公私钥”的方式进行登录,具体的原理为:

  • 首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)
  • 然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥
  • 当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了

具体的实现方法如下:
user@ubuntu:~$ ssh-keygen -t rsa -P “”
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Created directory ‘/home/user/.ssh’.
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
9b:82:ea:58:b4:e0:35:d7:ff:19:66:a6:ef:ae:0e:d2 hadoop@ubuntu
The key’s randomart image is:
[…snipp…]

user@ubuntu:~$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

主要就是红色的命令,一个是生成公私钥对,类型是rsa,当然也可以是dsa啥的。然后第二条命令就是把公钥放到受信公钥文件里。这个时候使用

ssh user@localhost

就可以直接登录不用再输入密码了。当然配置多台机器用scp搞一下就成,这里我就不详说了。

2011年5月18日 | 归档于 Linux
标签: , , ,
  1. 2011年5月31日 11:27 | #1

    ssh-copy-id user@dest_machine 就好啦:)

发表评论

XHTML: 您可以使用这些标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">