Mac OS X上如何實現到Linux主機的ssh免登錄

前面我在個人 代碼筆記本如何用MAC 的 「終端」 軟件連接 linux 服務器。可是吧,對我來講,這樣的操做太麻煩了,不習慣。html

本文要講的,就是如何簡化從Mac登陸Linux主機的操做步驟,提升效率。所謂的「免登錄」實際上是不存在的,只是說,從驗證密碼的登陸方式,改成公私鑰對的登陸驗證方式。使用後者的方式,每次會由ssh客戶端自動發送驗證信息,因此就免去了人工輸入密碼,看起來好像「免登錄」同樣。linux

關於這麼作的原理,你們能夠本身去Google,關鍵詞是「非對稱加密」,「RSA算法」,「基於ssh密鑰對的自動登陸」,等等,我就很少解釋了。我直接說操做步驟吧:算法

1.生成密鑰對
2.用密碼登陸遠程主機,將公鑰拷貝過去
3.done服務器

第一步:生成密匙對
執行命令 ssh-keygen -t rsa
執行結果以下:dom

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:1這一段kdy隱藏....... charles@TCMBP.local
The key’s randomart image is:
+–[ RSA 2048]—-+
| … .. o=.. |
| +.*o. …+ |
| Bo+o. o.. |
| …+E o |
| + S |
| . . |
| . |
| |
| |
+—————–+

注意:提示enter passphrase的時候,不要輸入,由於你原本就想少打一次密碼的,這裏若是設置了用密碼保護私鑰,那登陸的時候仍是要輸密碼,就白作了。ssh

作完這個步驟後,cd ~/.ssh,你就能夠看到你剛纔生成的密鑰對,id_rsa是私鑰,id_rsa.pub是公鑰。下一步,就是把公鑰拷貝到目標主機上。ide

第二步:將公鑰拷貝到目標主機加密

用ssh登陸到目標主機,而後cd ~/.ssh目錄,若是目錄不存在,那麼要本身建立mkdir -p ~/.ssh。你從此要用哪一個賬戶登陸主機,就在哪一個賬戶的home目錄下操做,若是要免登錄root,就要去/root下操做。使用~比較好,不用多想了。code

有了.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文件最後一行。htm

若是.ssh目錄是你主機剛剛建立的,那麼可能還須要改變一下這個目錄的權限,將權限放低,chmod -R 0600 ~/.ssh,到此,全部設置就算作完了,你能夠退出登陸,在本身的主機上試一下了,如今再敲入ssh命令後,不用密碼就能夠登陸主機了。

原文:http://www.aips.me/mac-key-ssh-login-linux.html

相關文章
相關標籤/搜索