天天看點

MAC OS SSH with key

1. 如果是在Linux上生成的id_rsa檔案,就把這個私鑰拷貝到~/.ssh/下,然後用下面指令将id_rsa的權限設定為600(如果不改600,就不能登陸!):

chmod 600 ~/.ssh/id_rsa

2. 另外編輯/etc/ssh.config

sudo vim /etc/ssh.cnfig

把下面注釋行的#去掉

RSAAuthentication yes

PasswordAuthentication no

IdentityFile ~/.ssh/id_rsa

如果改變了ssh的端口,用Port指定:

Port 10022

本文要講的,就是如何簡化從Mac登入Linux主機的操作步驟,提高效率。所謂的“免登陸”其實是不存在的,隻是說,從驗證密碼的登入方式,改為公私鑰對的登入驗證方式。使用後者的方式,每次會由ssh用戶端自動發送驗證資訊,是以就免去了人工輸入密碼,看起來好像“免登陸”一樣。

關于這麼做的原理,大家可以自己去Google,關鍵詞是“非對稱加密”,“RSA算法”,“基于ssh密鑰對的自動登入”,等等,我就不多解釋了。我直接說操作步驟吧:

生成密鑰對

用密碼登入遠端主機,将公鑰拷貝過去

done

怎麼樣,無敵簡單吧?

執行結果如下:

charles@mac:~ > ssh-keygen -t rsa 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指令後,不用密碼就可以登入主機了。

本文轉自 h2appy  51CTO部落格,原文連結:http://blog.51cto.com/h2appy/1093576,如需轉載請自行聯系原作者

繼續閱讀