在SSH中使用RSA和DSA認(rèn)證(詳解)

[原貼]http://weblog.kreny.com/archives/2005/10/rsadsa_authenti.html  [作者]: kreny

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、張北網(wǎng)站維護(hù)、網(wǎng)站推廣。

一直想把自己的服務(wù)器的 SSH 認(rèn)證的模式從用戶名 密碼模式 轉(zhuǎn)換成  RSA 和 DSA 認(rèn)證協(xié)議 ,借著OpenSSH 4.2的發(fā)布,今天寫了一下配置過程并收集了一些關(guān)于 RSA 和 DSA 的參考文章。

思路整理:
一直沒有理解公匙模式下的認(rèn)證過程,這里總結(jié)一下公匙和秘匙的制作和安置方法。以下假設(shè)一臺服務(wù)器Server和一臺PC作為例子。
首先,并不是在服務(wù)器上生成公匙和秘匙。因?yàn)楹芏嚓P(guān)于RSA 和 DSA 認(rèn)證協(xié)議的文章都使用Linux服務(wù)器作為道具,自然也就使用諸如  ssh-keygen -t rsa  之類的命令,而使得我總是誤認(rèn)為要先在Linux服務(wù)器上先生成公匙和秘匙。而真正的安置方法是:
當(dāng)從PC連接Server的時(shí)候,需要在PC上保存一對公匙和秘匙(這對公匙和秘匙可以用諸如PenguiNet之類的工具生成),而只要把生成的公匙傳到Server上即可。而往往在Server上,公匙是被放在 ~/.ssh/authorized_keys 這個(gè)文件中。這個(gè)文件的設(shè)置可以在  /etc/ssh/sshd_config  中找到。

 AuthorizedKeysFile .ssh/authorized_keys

那么當(dāng)從一個(gè)Linux Client Server連接到另外一個(gè)Linux Server的時(shí)候,我們應(yīng)該在 Linux Client Server 上生成一對秘匙(RSA時(shí)默認(rèn)為 id_rsa 和 id_rsa.pub),保存在 ~/.ssh/ 中, 這個(gè)設(shè)置可以在  /etc/sshd/ssh_config  中設(shè)置:

 # IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa

RAS/DSA認(rèn)證安裝過程(以 tenten 用戶為例):  
( 以下測試在最新的OpenSSH 4.2 下通過,在 OpenSSH_3.9p1 下測試失?。? )

  [root@domain ~]$su - tenten
[tenten@domain ~]ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tenten/.ssh/id_rsa):[Enter]
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/tenten/.ssh/id_rsa.
Your public key has been saved in /home/tenten/.ssh/id_rsa.pub.
The key fingerprint is:
c7:93:83:c4:24:30:56:90:37:a0:eb:a7:5d:4c:8d:ea:1a: tenten@example.com

:::或者:::

[tenten@kdx ~]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/tenten/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/tenten/.ssh/id_dsa.
Your public key has been saved in /home/tenten/.ssh/id_dsa.pub.
The key fingerprint is:
a2:be:16:2e:66:e4:69:68:a0:eb:a7:5d:4c:8d:ea:1a:da:54:35:55:32:8e:e2 tenten@example.com

查看生成的文件:

 [tenten@kdx ~]$ ls /home/tenten/.ssh/ -la
total 28
drwx------ 2 tenten tenten 4096 Oct 11 16:09 .
drwx------ 3 tenten tenten 4096 Oct 9 16:50 ..
-rw------- 1 tenten tenten 736 Oct 11 16:09  id_dsa
-rw-r--r-- 1 tenten tenten 612 Oct 11 16:09  id_dsa.pub
-rw------- 1 tenten tenten 951 Oct 11 16:03  id_rsa
-rw-r--r-- 1 tenten tenten 232 Oct 11 16:03  id_rsa.pub
-rw-r--r-- 1 tenten tenten 667 Oct 9 16:48 known_hosts

設(shè)置 sshd_config 文件,去除密碼認(rèn)證

 # To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no

由于在 sshd_config 文件里面,我們設(shè)置了以下內(nèi)容:

 #AuthorizedKeysFile .ssh/authorized_keys

所以我們要把共匙重命名為 autherized_keys

 [root@domain .ssh]# mv id_dsa.pub autherized_keys

所以最終服務(wù)器端 ~/.ssh/ 目錄下的內(nèi)容為(注意authorized_keys的權(quán)限為 644)

 [tenten@domain .ssh]$ ls -la
total 12
drwx------ 2 tenten tenten 4096 Oct 11 19:57 .
drwx------ 3 tenten tenten 4096 Oct 11 18:50 ..
-rw-r--r-- 1 tenten tenten 232 Oct 11 19:46 authorized_keys

 

引申: 
在安裝 openssh 的最后,輸入 make install 命令后,會發(fā)現(xiàn)最后會生成 public/private key:

 Generating public/private  rsa1  key pair.
Your identification has been saved in /usr/local/etc/ssh_host_key.
Your public key has been saved in /usr/local/etc/ssh_host_key.pub.
The key fingerprint is:
22:67:00:5f:82:87:ab:22:e7:8e:cd:bb:d2:07:98:57 root@example.com

Generating public/private  dsa  key pair.
Your identification has been saved in /usr/local/etc/ssh_host_dsa_key.
Your public key has been saved in /usr/local/etc/ssh_host_dsa_key.pub.
The key fingerprint is:
17:6c:d8:6f:31:db:bd:3c:66:81:86:12:13:a4:33:a3 root@example.com

Generating public/private  rsa  key pair.
Your identification has been saved in /usr/local/etc/ssh_host_rsa_key.
Your public key has been saved in /usr/local/etc/ssh_host_rsa_key.pub.
The key fingerprint is:
27:0e:16:41:f8:96:ed:93:b6:a8:61:74:fe:87:e2:91 root@example.com
/usr/local/sbin/sshd -t -f /usr/local/etc/sshd_config

 

參考文檔:  
張微波:linux下SSH配合SecureCRT的密匙完美使用方法  
Daniel Robbins: 通用線程: OpenSSH 密鑰管理,第 1 部分

OpenSSH 的 RSA 和 DSA 認(rèn)證協(xié)議的基礎(chǔ)是一對專門生成的密鑰,分別叫做專用密鑰和公用密鑰。使用這些基于密鑰的認(rèn)證系統(tǒng)的優(yōu)勢在于:在許多情況下,有可能不必手工輸入密碼就能建立起安全的連接。

分享文章:在SSH中使用RSA和DSA認(rèn)證(詳解)
URL標(biāo)題:http://bm7419.com/article44/jdiiee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化商城網(wǎng)站、網(wǎng)站導(dǎo)航響應(yīng)式網(wǎng)站、網(wǎng)站收錄、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)