2007年4月27日 星期五

[OpenSSH] 製作不需密碼即可登入SSH server 的 client

這邊要介紹如何設定不用輸入密碼就可以登入 SSH serevr,假設以下環境如下:

Server
server.twcic.net
Client
client1.twcic.net
client2.twcic.net


基本上設定的步驟如下:

  1. 到 client 主機上產生 public / private key
  2. 上傳至 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


2、將 Public Key 傳至 server

接著要將剛剛產生出來的 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 加入,因此沒有問題!

沒有留言:

張貼留言