1. 在本地機器建立公鑰
開啟萬能的終端,執行如下命令,無視一切輸出,一路歡快地回車即可。
ssh-keygen -t rsa -C 'your email@domain.com'
-t 指定金鑰型別,預設即 rsa ,可以省略
-C 設定註釋文字,比如你的郵箱
2. 將公鑰複製到ssh伺服器
將前一步驟生成的公鑰~/id_rsa.pub檔案,複製到ssh伺服器對應使用者下的~/.ssh/authorized_keys檔案,可以有多種方式,這裡只介紹常用的三種。
- [適用於osx系統]使用ssh-copy-id-for-OSX工具將公鑰複製至ssh伺服器
brew install ssh-copy-id ssh-copy-id username@hostname #將username和hostname替換為你的ssh伺服器使用者名稱和IP
- 當ssh伺服器username使用者目錄下尚未有.ssh目錄時使用此方式
cat ~/.ssh/id_rsa.pub | ssh username@hostname "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
- 通用方式
scp ~/.ssh/id_rsa.pub username@hostname:~/ #將公鑰檔案複製至ssh伺服器 ssh username@hostname #使用使用者名稱和密碼方式登入至ssh伺服器 mkdir .ssh #若.ssh目錄已存在,可省略此步 cat id_rsa.pub >> .ssh/authorized_keys #將公鑰檔案id_rsa.pub檔案內容追加到authorized_keys檔案
3. 快捷登入
完成以上步驟後,即可使用以下命令直接登入ssh伺服器,媽媽再也不用擔心你記不住密碼了
ssh username@hostname #將username替換為你的ssh伺服器使用者名稱,hostname替換為伺服器的ip
但是,每次仍然需要輸入ssh username@hostname,仍算不上最優的解決方案,要是能實現一鍵登入或一條命令登入最好不過了,下面來看看都有那些解決方法
- ssh本身也提供了一種快捷的方式來解決這個問題,往~/.ssh/config配置檔案新增你的ssh伺服器資訊即可
vim ~/.ssh/config #若沒有該檔案,直接新建即可
新增檔案內容格式如下:
Host alias #自定義別名 HostName hostname #替換為你的ssh伺服器ip或domain Port port #ssh伺服器埠,預設為22 User user #ssh伺服器使用者名稱 IdentityFile ~/.ssh/id_rsa #第一個步驟生成的公鑰檔案對應的私鑰檔案
儲存檔案退出後,即可使用別名登入ssh伺服器
ssh alias #alias是你在~/.ssh/config檔案配置的別名
若有多個ssh賬號需要配置,只要在~/.ssh/config空行再寫即可,如下:
Host foo HostName 192.168.2.222 Port 22 User test IdentityFile ~/.ssh/id_rsa Host alias HostName hostname Port port User user
- 如果你本地終端使用的是zsh,那就太簡單不過了,直接給zsh新增一條別名
echo "alias ssh-to-username='ssh username@hostname'" >> ~/.zshrc #將username和hostname替換為你的伺服器資訊 source ~/.zshrc #重新載入更改後的zshrc檔案 ssh-to-username #使用別名,一條命令即可登入你的ssh伺服器
- 如果你本地終端使用的是iterm2還可以新增Profile實現一鍵登入,具體步驟此處略過
下面關於SSH相關的文章您也可能喜歡,不妨參考下:
Ubuntu 下配置 SSH服務全過程及問題解決 http://www.linuxidc.com/Linux/2011-09/42775.htm
Ubuntu 14.04 下安裝Samba 及SSH 服務端的方法 http://www.linuxidc.com/Linux/2015-01/111971.htm
SSH服務遠端訪問Linux伺服器登陸慢 http://www.linuxidc.com/Linux/2011-08/39742.htm
提高Ubuntu的SSH登陸認證速度的辦法 http://www.linuxidc.com/Linux/2014-09/106810.htm
開啟SSH服務讓Android手機遠端訪問 Ubuntu 14.04 http://www.linuxidc.com/Linux/2014-09/106809.htm
如何為Linux系統中的SSH新增雙重認證 http://www.linuxidc.com/Linux/2014-08/105998.htm
在 Linux 中為非 SSH 使用者配置 SFTP 環境 http://www.linuxidc.com/Linux/2014-08/105865.htm
Linux 上SSH 服務的配置和管理 http://www.linuxidc.com/Linux/2014-06/103627.htm