Mac OS X下配置遠端Linux 伺服器SSH金鑰認證自動登入

YatHo發表於2017-09-06

1. 在本地機器建立公鑰

開啟萬能的終端,執行如下命令,無視一切輸出,一路歡快地回車即可。

ssh-keygen -t rsa -C  'your email@domain.com'

-t 指定金鑰型別,預設即 rsa ,可以省略
-C 設定註釋文字,比如你的郵箱

2. 將公鑰複製到ssh伺服器

將前一步驟生成的公鑰~/id_rsa.pub檔案,複製到ssh伺服器對應使用者下的~/.ssh/authorized_keys檔案,可以有多種方式,這裡只介紹常用的三種。

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

相關文章