使用 SSH Key 登入伺服器
Dec 12, 2022
使用ssh登入遠端主機時,一般是使用密碼進行驗證,雖然不算太麻煩,但每次連接都要輸入一次,久而久之其實也是耗費了不少時間。而本文介紹使用ssh key進行驗證的方法,可以省去每次輸入密碼的麻煩。
首先產生一組private, public ssh key。輸入:
1 | ssh-keygen |
它會問你要放在哪裡,預設是 ~/.ssh/id_rsa
,如果你沒有要改就按enter繼續。
接著會問你是否要使用passphrase,如果你輸入的話,他會幫你把key用這組passphrase進行加密,之後每次使用時都需要輸入passphrase。如果你不想設定passphrase,就不要輸入任何東西,直接按enter即可。
接著就會在 ~/.ssh
資料夾中,出現兩個新的檔案 id_rsa
以及 id_rsa.pub
。id_rsa
是私鑰,只需要存在你的電腦上面;而id_rsa.pub
是公鑰,需要放到你要登入的那台伺服器上面。
將公鑰放到伺服器上面的指令為:
1 | ssh-copy-id -i .ssh/id_rsa.pub user@host_name |
如果你的ssh要走別的port的話,可以改成這樣:
1 | ssh-copy-id -i .ssh/id_rsa.pub -p 2222 user@host_name |
接著嘗試使用ssh連接主機,這時應該就可以不用輸入密碼了。
最後再順便介紹一下,ssh key怎麼搭配ssh config使用。ssh config可以讓你用檔案的方式來設定ssh連線資訊,你可以設定一個名稱,之後連線時就只需要輸入這組名稱即可登入伺服器。
在 ~/.ssh
目錄下,建立一個名叫 config
的檔案,並在裡面寫入:
1 | Host host_name # 這個可以設定自己喜歡的名字 |
之後每次透過ssh連接至伺服器時,只需要輸入:
1 | ssh host_name |
這樣就可以連上主機了。
參考文章:
[教學] 產生SSH Key並且透過KEY進行免密碼登入
https://chusiang.gitbooks.io/working-on-gnu-linux/content/20.ssh_config.html
本文由 [Ping Yang] 撰寫