背景:無密碼登陸,所謂的無密碼登陸實際上是指經過證書認證的方式登陸,使用一種‘公私鑰’認證的方式來進行ssh登陸html
在linux系統中,ssh是遠程登陸的默認工具,由於該工具的協議使用了RSA/DSA的加密算法。該工具作Linux系統的遠程管理是很是安全的。(telnet 由於其不安全性,在linux系統被擱置使用啦!!!)linux
「公私鑰」認證方式簡單的解釋:首先在客戶端建立一對公私鑰(公鑰文件:~/.ssh/id_rsa.pub; 私鑰文件:~/.ssh/id_rsa)。而後把公鑰放到服務器上(~/.ssh/authorized_keys),本身保留好私鑰。在使用ssh登陸時,ssh程序會發送私鑰去和服務器上的公鑰作匹配.若是匹配成功就能夠登陸了。算法
1.確認系統已經安裝了SSH。vim
rpm –qa | grep openssh安全
rpm –qa | grep rsync服務器
-->出現以下圖的信息表示已安裝ssh
假設沒有安裝ssh和rsync,能夠經過下面命令進行安裝。工具
yum install ssh -->安裝SSH協議oop
yum install rsync -->rsync是一個遠程數據同步工具,可經過LAN/WAN快速同步多臺主機間的文件測試
service sshd restart -->啓動服務
2.生成祕鑰對
ssh-keygen –t rsa –P '' -->直接回車生成的密鑰對:id_rsa和id_rsa.pub,默認存儲在"/home/hadoop/.ssh"目錄下。
3.把id_rsa.pub追加到受權的key裏面去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
5.修改SSH配置文件
su - -->登錄root用戶修改配置文件
vim /etc/ssh/sshd_config -->去掉下圖中三行的註釋
6.測試鏈接
service sshd restart -->重啓ssh服務,
exit -->退出root用戶,回到普通用戶
ssh localhost -->鏈接普通用戶測試
這只是配置好了單機環境上的SSH服務,要遠程鏈接其它的服務器,接着看下面。
如今祕鑰對已經生成好了,客戶端SSH服務也已經配置好了,如今就把咱們的鑰匙(公鑰)送給服務器。
scp ~/.ssh/id_rsa.pub 遠程用戶名@遠程服務器IP:~/ -->將公鑰複製到遠程服務器的~/目錄下
如: scp ~/.ssh/id_rsa.pub hadoop@192.168.1.134:~/
能夠看到咱們複製的時候須要咱們輸入服務器的密碼,等咱們把SSH配置好以後這些步驟就能夠不用輸入密碼了。
上一步把公鑰發送到192.168.1.134服務器上去了,咱們去134機器上把公鑰追加到受權key中去。(注意:若是是第一次運行SSH,那麼.ssh目錄須要手動建立,或者使用命令ssh-keygen -t rsa生成祕鑰,它會自動在用戶目錄下生成.ssh目錄。特別注意的是.ssh目錄的權限問題,記得運行下chmod 700 .ssh命令)
在134機器上使用命令:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys -->追加公鑰到受權key中
rm ~/id_rsa.pub -->保險起見,刪除公鑰
一樣在134機器上重複第四步和第五步,
service sshd restart -->重啓ssh服務
回到客戶機來,輸入:
ssh 192.168.1.134 -->應該就能直接鏈接服務器咯。