這邊要介紹如何設定不用輸入密碼就可以登入 SSH serevr,假設以下環境如下:
- Server
- server.twcic.net
- Client
- client1.twcic.net
- client2.twcic.net
基本上設定的步驟如下:
- 到 client 主機上產生 public / private key
- 上傳至 server
1、產生 Key pair
首先在 client 端的機器上要產先 public key 以及 private key,用來在 client 與 server 之間的資料傳輸進行加密。
在 Linux 中,可使用 ssh-keygen 指令來產生 Key pair:
shell> ssh-keygen -t rsa
Generating public/private rsa key pair. # 開始產生 key pair
Enter file in which to save the key (/root/.ssh/id_rsa): # 此處要指定 key pair 的存放處,可直接用預設值
Enter passphrase (empty for no passphrase): # 此處按 enter 跳過
Enter same passphrase again: # 此處按 enter 跳過
Your identification has been saved in /root/.ssh/id_rsa. # private key 的位置
Your public key has been saved in /root/.ssh/id_rsa.pub. # public key 的位置
The key fingerprint is:
34:35:d9:57:64:88:58:fe:91:2a:11:d0:ad:c5:ea:c3 root@client1.twcic.net
接著要將剛剛產生出來的 public key 傳至 server 上,可透過以下指令:
shell> scp ~/.ssh/id_rsa.pub user1@server.twcic.net:~/
user1@server.twcic.net's password: # 此處輸入 user1 的登入密碼
將 client 的 public key 上傳後,要將其附加在 SSH 連線的認證清單中;因此登入 server 後,可以用以下指令將 client 剛剛傳過來的 public key 加入認證清單中:
shell> cd ~/
# 如果沒有「.ssh」目錄就必須先建立,有就可以省了
shell> mkdir .ssh
# 將 client 的 public key 附加於 authorized_keys 檔案中
shell> cat id_rsa.pub >> .ssh/authorized_keys
【備註】
最後,如果要多台 client 都可以不用打密碼連線至 server,也是照個上述的步驟即可,因為「>>」是以附加的方式將 client public key 加入,因此沒有問題!
沒有留言:
張貼留言