A :用戶端10.10.230.211(需要從這台機器去登陸B) B:服務端10.10.230.119(遠程主機,A端操作員需要最終登陸的機器)
總體來說:從A211登陸B119不要求輸入密碼就可以了
實現:
A:操作
10.10.230.211# ssh-keygen -t rsa
10.10.230.211# cd .ssh/
10.10.230.211# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
10.10.230.211# scp ~/.ssh/authorized_keys 10.10.230.119:~/.ssh/authorized_keys
10.10.230.211# ssh root@10.10.230.119
多台伺服器相互無密碼訪問
多台伺服器相互無密碼訪問,與兩台伺服器單向無密碼訪問的原理是一樣的,只不過由於是多台伺服器之間相互無密碼訪問,不能象兩台伺服器無密碼登入那樣直接上傳,步驟如下:
1、在每台伺服器上都執行ssh-keygen -t rsa產生金鑰組:
#ssh-keygen -t rsa
2、在每台伺服器上產生金鑰組後,將公開金鑰複製到需要無密碼登陸的伺服器上:
舉例如192.168.15.240,192.168.15.241,192.168.15.242這三台伺服器需要做相互免密碼登陸,在每台伺服器產生金鑰組後,在每台伺服器上執行ssh-copy-id命令(具體說明及用法見最後附錄),將公開金鑰複製到其它兩台伺服器上(此處以192.168.15.240為例,使用者為root,其它兩台步驟相同)
#ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.15.241
#ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.15.242
以上命令,可以自動將公開金鑰添加到名為authorized_keys的檔案中,在每台伺服器都執行完以上步驟後就可以實現多台伺服器相互無密碼登陸了
附ssh-copy-id介紹及用法:
Linux系統裡預設都包含一個名為ssh-copy-id的工具:
# type ssh-copy-id
ssh-copy-id is /usr/bin/ssh-copy-id
你用cat或者more命令看一下就知道ssh-copy-id本身其實就是一個shell指令碼,用法很簡單:
# ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
再也不用記如何拼字authorized_keys這個檔案名稱了,是不是很爽,可惜別高興太早了,ssh-copy-id有一個很要命的問題,那就是預設它僅僅支援SSH運行在22連接埠的情況,不過實際上出於安全的需要,我們往往都會更改伺服器的SSH連接埠,比如說改成10022連接埠,這時候你運行ssh-copy-id就會報錯了,直接修改ssh-copy-id指令碼當然可以修正這個問題,但是那樣顯得太生硬了,實際上還有更好的辦法:
# vi ~/.ssh/config
加上內容:
Host server
Hostname ip
Port 10022
你也可以單獨只加入Port一行配置,那樣就是一個全域配置,儲存後再運行ssh-copy-id命令就不會報錯了。
補充:經網友提示,如果連接埠不是22,不修改config檔案,按如下方式也可以:
ssh-copy-id -i ~/.ssh/id_rsa.pub “-p 10022 user@server