生成密鑰對
用密碼登入遠端主機,将公鑰拷貝過去
done
執行結果如下:
generating public/private rsa key pair. enter file in which to save the key (/users/charles/.ssh/id_rsa): created directory ‘/users/charles/.ssh’. enter passphrase (empty for no passphrase): enter same passphrase again: your identification has been saved in /users/charles/.ssh/id_rsa. your public key has been saved in /users/charles/.ssh/id_rsa.pub. the key fingerprint is: c8:4b:85:87:90:7c:1a:67:b6:71:f5:51:0c:9d:a2:89 [email protected] the key’s randomart image is: +–[ rsa 2048]—-+ | … .. o=.. | | +.*o. …+ | | bo+o. o.. | | …+e o | | + s | | . . | | . | | | +—————–+
注意:提示enter passphrase的時候,不要輸入,因為你本來就想少打一次密碼的,這裡如果設定了用密碼保護私鑰,那登入的時候還是要輸密碼,就白做了。
做完這個步驟後,cd ~/.ssh,你就可以看到你剛才生成的密鑰對,id_rsa是私鑰,id_rsa.pub是公鑰。下一步,就是把公鑰拷貝到目标主機上。
用ssh登入到目标主機,然後cd ~/.ssh目錄,如果目錄不存在,那麼要自己建立mkdir -p ~/.ssh。你今後要用哪個帳戶登入主機,就在哪個帳戶的home目錄下操作,如果要免登陸root,就要去/root下操作。使用~比較好,不用多想了。
有了.ssh目錄後,進去,然後把id_rsa.pub傳過去,可以用scp指令,這裡要做的一個主要操作,就是将id_rsa.pub,的檔案内容,寫到一個叫authorized_keys的檔案中去,如果目标主機的相應使用者名下已經有了.ssh目錄和authorized_keys檔案,那你操作要小心一點,可能别人也做過免登陸的設定,這個時候你要小心不要把别人的設定給覆寫了。如果沒有的話,就建立檔案touch ~/.ssh/authorized_keys,然後執行cat id_rsa.pub >> authorized_keys,将你的公鑰寫入到authorized_keys中,公鑰檔案.pub裡面隻有一行資訊,上面的指令相當于把那一行資訊追加到authorized_keys檔案最後一行。
如果.ssh目錄是你主機剛剛建立的,那麼可能還需要改變一下這個目錄的權限,将權限放低,chmod -r 0600 ~/.ssh,到此,所有設定就算做完了,你可以登出,在自己的主機上試一下了,現在再敲入ssh指令後,不用密碼就可以登入主機了。