假設兩台主機為master和slave,兩台主機中要做ssh鏈接的兩個用戶名最好相同,否則在之后ssh鏈接時會比較蛋疼。下面是修改主機名的操作步驟
首先注銷掉需要修改用戶名的用戶(!!必須注銷掉),然后最好ctrl+alt+f1進入純命令行操作,登錄root用戶,按照順序做如下操作
passwd 原名字
設置新的密碼
chfn -f 新名字 原名字
usermod -l 新名字 -d /home/新名字 -m 原名字
groupmod -n 新名字 原名字
然后重啟就ok了。
下面進入正題:
1 首先分別把兩台主機安裝上openssh-server,執行如下命令即可:
sudo apt-get install openssh-server
2 在兩台主機分別創建sshkey,步驟如下
ssh-keygen -t rsa
ps:ssh和-keygen之間是沒有空格的,沒有,沒有,重要的事要說三遍,初學者很容易看錯了。
一直回車就行了,如下圖
進入/home/hadoop下就會產生一個新目錄,叫.ssh,進入該目錄ls就會發現有兩個文件,id_rsa和id_rsa.pub,前者為私鑰,后者為公鑰
兩台主機分別把自己的公鑰發給對方,命令如下:
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.8.94
其中,hadoop為對方的要執行ssh鏈接的用戶名,192.168.8.94是對方主機的ip地址,我在hosts中做了配置,也可以用配置后的別名,如下圖:
中間輸入的密碼是對方主機用戶的密碼。
如果分別在兩台主機執行了以上操作,就會發現,兩台主機的.ssh/目錄下多出了一個文件authorized_keys。
然后就可以通過如下ssh命令鏈接到對方了
ssh hadoop@192.168.8.94
然后關鍵來了,我最先說的最好設置成相同的用戶名,如果兩個主機用戶名相同,那么可以直接通過 ssh 對方ip 訪問。如下:
如果想退回就執行exit命令。
遇見的錯誤:執行ssh鏈接的命令后,顯示如下一行提示,並且需要輸入對方密碼才能ssh訪問
agent admitted failure to sign using the key
解決方法:在本機執行如下命令就可以解決了
ssh-add