[Linux] 建立 ssh key 及相關指令

一般使用 ssh 連線方式來遠端連線至其它伺服器時,都要再輸入密碼,那有沒有其它方式,可以不用輸入密碼就直接登入呢?這時 ssh key 就可以派上用場了。

使用原理

使用 ssh-keygen 指令可以產生一組公鑰及私鑰(預設會存在 ~/.ssh 資料夾下),分別是檔案形式,公鑰檔可以傳到任何想直接登入的伺服器,而私鑰檔存在自己的電腦,不要任意給其它人,這樣就可以在自己的電腦當中,直接使用這組 key 來 ssh 連線至其它的伺服器,就不需要輸入密碼。

建立 ssh key

透過以下指令,會直接在預設的 ~/.ssh 資料夾下,建立 id_rsa 及 id_rsa.pub 這兩個檔案,分別是私鑰及公鑰。

$ ssh-keygen

另一種方式,也可以透過以下指令,指定存在哪個資料夾及指定檔名,就會在 ~/Documents/test_key 資料夾下,建立 your_rsayour_rsa.pub 這兩個檔案,分別是私鑰及公鑰。

$ ssh-keygen -f ~/Documents/test_key/your_rsa

在 Mac 的新版(macOS Mojave)產生了 Node.js 解析格式有誤的問題,改執行以下指令:

$ ssh-keygen -m PEM -t rsa -f ~/Documents/test_key/your_rsa

如何複製 public key

使用以下指令,就可以將 your_rsa.pub 檔案的內容,複製到剪貼簿,可以再任意的文字編輯器當中直接輸入 cmd + v(貼上),即可看到內容(假設已移到檔案所在路徑):

$ pbcopy < ./webmix_rsa.pub

如何直接複製 public key 到指定的伺服器

使用 ssh-copy-id 工具,執行以下指令,就會將 webmix_rsa.pub 這個公鑰的內容,傳到 user@host~/.ssh/authorized_keys 檔案之中:

$ ssh-copy-id -i ~/webmix_rsa.pub user@host

其它資源

ssh.com

您可在此處留言

avatar

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

  Subscribe  
Notify of