除了通過交互式的方式輸入用戶名和密碼以為,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搞一下就成,這裡我就不詳說了。