一般我們登入Linux伺服器可以透過密碼進行登入,

今天要介紹的SSH 公開金鑰認證(Public Key Authentication)

是一種不用打密碼就可以直接登入 Linux,既安全又方便

 

diagram.png

假設你想要用從某一台Linux的電腦登入Linux伺服器,則可以按照以下步驟做

 

在Linux Client產生SSH Key

首先輸入指令來產生 key

ssh-keygen


在產生Key的過程中,會詢問一些問題,對於一般的使用者而言,全部都使用預設值(直接按下 Enter 鍵)即可。

首先會詢問產生的ssh key要存放的位置

這時選擇要放的位置 預設為 /home/username/.ssh/id_rsa

使用預設值即可,直接按下 Enter 鍵。

Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):

 

接著會詢問要不要設定 passphrase

如果有設定密碼的話,以後每次使用都要輸入密碼,除你需要非常高的安全性,否則就不用設定了,直接按下 Enter 鍵即可。

安全性會比較高,依照你的需求即可

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

 

接下來就會產生key到指定位置了

會有兩個key 一個有副檔名 .pub 為公鑰,而沒有副檔名的為私鑰


id_rsa.pub:公開金鑰(public key),這是可以對外公開的金鑰,之後要將它放在遠端的 Linux 伺服器上作認證使用。

id_rsa:私密金鑰(private key),這是要保護好的金鑰,它等同於你的 Linux 密碼,放在自己的電腦中。

ssh-keygen.png

▲ 因為我之前已經有產生過key了,所以它問我要不要複寫

 

將公鑰設定放到Linux Server上

可以在Linux Client下使用ssh-copy-id指令的方式

將產生的 id_rsa.pub 這個公開金鑰複製到 Linux Server上的 ~/.ssh/authorized_keys 檔案中

將下面指令的USER換成自己的帳號,和把HOST換成Linux Server的IP或host

ssh-copy-id USER@HOST


它預設會將 ~/.ssh/id_rsa.pub 這個公開金鑰複製到伺服器上,若要指定使用的金鑰,可以使用 -i 參數:

ssh-copy-id -i your_key_path USER@HOST

 

測試

將公開金鑰放在 Linux 伺服器上之後,就可以不用打密碼登入 Linux  Server了

ssh USER@HOST

 

如果不用輸入密碼,就代表設定成功了

arrow
arrow
    文章標籤
    SSH RSA Linux 免密碼登入
    全站熱搜

    Mark Zhang 發表在 痞客邦 留言(0) 人氣()