天天看點

Mac使用ssh公鑰登入Linux

ssh登入Linux通常有兩種方法:使用者名密碼登入、使用者名公鑰登入;使用使用者名密碼登入每次都要輸入密碼,相當麻煩,而使用使用者名公鑰登入則可以避免這個問題。

建立公鑰私鑰檔案

打開本地終端,執行 ssh-keygen 指令建立密鑰對:

ssh-keygen -t rsa -C  'your e[email protected]'

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

生成過程中會提示輸入密碼兩次,如果不想在使用公鑰的時候輸入密碼,可以回車跳過;

密鑰預設儲存位置在 ~/.ssh 目錄下,打開後會看到私鑰檔案 id_rsa 和公鑰檔案 id_rsa.pub;

Mac使用ssh公鑰登入Linux

複制公鑰至伺服器

使用 scp 指令将本地的公鑰檔案 id_rsa.pub 複制到需要連接配接的Linux伺服器:

scp ~/.ssh/id_rsa.pub <使用者名>@<ip位址>:/home/id_rsa.pub
           

如果修改了ssh預設連接配接端口的話,需要加上端口資訊:

scp -P <端口号> ~/.ssh/id_rsa.pub <使用者名>@<ip位址>:/home/id_rsa.pub
           

把公鑰追加到伺服器ssh認證檔案中:

cat /home/id_rsa.pub >> ~/.ssh/authorized_keys
           
Mac使用ssh公鑰登入Linux

這時候在本地終端中使用使用者名和ip登入就不需要密碼了:

ssh <使用者名>@<ip>
           
Mac使用ssh公鑰登入Linux

如果修改了ssh預設連接配接端口的話,需要加上端口資訊:

ssh -p <端口号> <使用者名>@<ip位址>
           
Mac使用ssh公鑰登入Linux

配置快捷登入

即使不用輸入密碼,這樣每次登入還要輸入使用者名ip端口資訊還是有點麻煩,我們可以配置ssh快捷登入更友善的登入Linux;

在本地 ~/.ssh/config 配置檔案中添加ssh伺服器資訊,格式:

Host            alias            #自定義别名
HostName        hostname         #替換為你的ssh伺服器ip或domain
Port            port             #ssh伺服器端口,預設為22
User            user             #ssh伺服器使用者名
IdentityFile    ~/.ssh/id_rsa    #第一個步驟生成的公鑰檔案對應的私鑰檔案
           
Mac使用ssh公鑰登入Linux

這時候就可以使用配置檔案中自定義的别名來登入了:

Mac使用ssh公鑰登入Linux

繼續閱讀