- 點選 PUTTYGEN.EXE 程序 (官網下載頁面)。
- 在 Parameters 一欄選擇 Key 類型為「SSH2 DSA」。( 其實這裡的三個選項都可以選,主要式配合你的 ssh )
- 點擊 Generate 按鈕。
- 在空白處隨機移動鼠標用以產生隨機數據。這些隨機數據將被 Puttygen.exe 用來產生安全的 KEY (密鑰),收集到足夠的隨機數據密鑰就會產生。
- 基本上此時鑰匙以建立完成,但若你考慮在鑰匙上加上安全機制,可在"Key passphrase" 和 "Confirm passphrase"處輸入密碼,為你的私鑰加密,當然你也可以選擇不輸入密碼;當使用者利用私鑰要登入伺服器時,會被問起這組密碼。
- 保存這對鑰匙,Save private key 保存私鑰,Save public_key 保存公鑰,保存私鑰的附檔名為 .ppk,此文件就是客戶端要使用的私鑰,若你沒有設定 passphrase ,在儲存私鑰同時會詢問 passphrase 是否空白 。基本上,公鑰可以不儲存,可以將文字方塊中的那一長串文字複製於 authorized_keys 中,若真的遺失了,可用 load 私鑰的方式產生公鑰。
- Puttygen會在 key 文字方塊中產生一對亂碼,將整段複製,貼於個人資料夾中的 .ssh/authorized_keys ,以下為公鑰範例。
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAz7y1oBJiH6yuW6hOWu3jzTPYOJ5MRwvhvM6pcK9+NAjj8nJk9Msvpt7fwBoQyBNuXN/fZTneUxL16rYbeVQ8M2xWUZ0QbB38aCSRkM3iUaD/JuPXrfGkTsSEvwsztr+jyz8/SCeOiaZ7YXoCUUoTobJ2l4R43C8y6m7Y8DivH/k= rsa-key-20080514
增加使用公鑰的限制
在公鑰的亂碼前加入 from 或 command,可以限制使用公鑰的指令與來源IP如下
from="192.168.101.10" ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAz7y1oBJiH6yuW6hOWu3jzTPYOJ5MRwvhvM6pcK9+NAjj8nJk9Msvpt7fwBoQyBNuXN/fZTneUxL16rYbeVQ8M2xWUZ0QbB38aCSRkM3iUaD/JuPXrfGkTsSEvwsztr+jyz8/SCeOiaZ7YXoCUUoTobJ2l4R43C8y6m7Y8DivH/k= rsa-key-20080514
ssh-keygen 製作鑰匙
首先決定要使用這把公鑰的用戶(可以是 root),並切換至用戶目錄下。
bang@linuxdiary:~$ su bang產生鑰匙,如同 puttygen,會產生一對鑰匙,公鑰與私鑰,-t 為產生格式,有一般可選擇 dsa 或 rsa,在產生時,系統會詢問你存放地點與使用密碼,你可以直接 Enter 略過,不設密碼,代表使用私鑰時,不須密碼。
bang@linuxdiary:~$ cd ~
bang@linuxdiary:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):/root/.ssh/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /bang/.ssh/id_rsa.
Your public key has been saved in /bang/.ssh/id_rsa.pub.
The key fingerprint is:
f4:b4:55:93:89:f7:d5:b0:4a:38:39:76:36:6c:a4:b6 bang@192.168.1.10
以下是容易忘記的地方,必須完成幾個重要的權限設定,最後將公鑰匯入 authorized_key
bang@linuxdiary:~$ chmod 700 .ssh有關於私鑰的使用
bang@linuxdiary:~$ cd .ssh
bang@linuxdiary:.ssh$ touch authorized_keys
bang@linuxdiary:.ssh$ chmod 600 authorized_keys
bang@linuxdiary:.ssh$ cat id_dsa.pub > authorized_keys
在Linux上的使用方法,根據 /etc/ssh/ssh_config 的設定,私鑰放置預設路徑為 ~/.ssh/id_rsa
故製作完私鑰後,可以將私鑰內容,複製於 ~/.ssh/id_rsa 之中,但 id_rsa 只能放一把鑰匙,若同時擁有多把主機鑰匙可用以下方式登入。
bang@linuxdiary:~$ ssh -i 鑰匙名稱 root@192.168.1.1sshd.conf 的相關設定
IdentityFile ~/.ssh/id_rsa
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
IdentityFile: 私鑰檔的路徑與名稱
AuthorizedKeysFile:公鑰檔的路徑與檔名
RSAAuthentication:是否開啟 RSA 認證
PubkeyAuthentication:是否允許公鑰認證