通常在linux下使用ssh的時候我們需要目標機器開啟了sshd的服務然後用 ssh客戶端連線過去以指定的使用者去登陸上去,正常情況下我們需要輸入登陸密碼才可以 成功登陸,但是在使用集群或者類似場景下我們有很多的的機器需要通過ssh間相互隨機的訪問,如果乙個乙個的輸入密碼那太繁瑣了。由此我們就需要建立免金鑰的登陸方式。
有關於ssh建立互信的博網上到處都有,今天之所以要記錄ssh互信的配置過程是因為我在使用的時候並不是那麼的一帆風順。
以下是配置步驟:
1、在對應的使用者下面建立rsa密匙
ssh-keygen -t rsa 即可,也可以-p輸入加密資訊
這不操作完成之後一般會在使用者的目錄下生成.ssh的目錄目錄下面有公匙和私匙
2、在所有的目標機器上執行上一步的操作
3、將生成的所有公匙重定向到同乙個檔案中並命名為authorized_keys
4、將合併後的authorized_keys檔案拷貝到每乙個機器的.ssh目錄下
rsaauthentication yes
pubkeyauthentication yes
authorizedkeysfile .ssh/authorized_keys
service sshd restart 重起sshd服務
注:ssh可同時支援publickey和password兩種授權方式,publickey預設不開啟,需要配置為yes。 如果客戶端不存在.ssh/id_rsa,則使用password授權;存在則使用publickey授權; 如果publickey授權失敗,依然會繼續使用password授權。 不要設定 passwordauthentication no ,它的意思是禁止密碼登入,這樣就只能本機登入了!
ssh互信建立之後依然需要輸入密碼才能登陸
解決辦法:.ssh 的目錄以及旗下的所有檔案的許可權需要調整以下,我調整的辦法是
chmod 700 -r .ssh
如果機器太多,這些操作可放在乙個指令碼中執行完成。
Ansible入門篇(二) SSH配置免密互信
ansible是用來處理大批量重複性操作的工具,只需要在一台機器上就可以遠端控制所有機器,但前提是必須保證每台機器之間ssh可以相互免密登入。關於ansible的安裝和環境準備請參考ansible環境的準備。免密安裝機器 172.18.18.120 172.18.18.121 172.18.18.1...
Mac Mac下SSH免密登入localhost
問題起因參考 mac下ssh 報錯 localhost ssh connect to host localhost port 22 connection refused 為了在mac上搭建hadoop standalone,需要配置ssh免密登陸自身,按照網上的教程試了一次又一次都不行,mac配置s...
centos集群下的ssh免密登入
配置ssh免密登入 這一步是為了集群之間能互相通訊 開啟host配置檔案 vim etc hosts 在其中新增所有伺服器或虛擬機器節點ip和對應的網域名稱,如下所示 因為我是為了搭建hadoop集群所以給機器取名hadoop 192.168.25.101 機器的名字 192.168.25.102 ...