http://blog.csdn.net/ruixj/article/details/4198956
如果你打算在windows下訪問另外一臺裝有Linux的機子,那麼推薦使用putty (d當然你的linux必須已經安裝了ssh服務器才行。)
SSH提供兩種級別的安全驗證: 一是基於口令的安全驗證。只要用戶知道自己賬號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密,但是不能保證用戶正在連接的服務器就是用戶想連 接的服務器。可能會有別的服務器在冒充真正的服務器,這存在着潛在的威脅。二是基於密匙的安全驗證。需要依靠密匙,也就是用戶必須爲自己創建一對公匙/密 鑰對,並把公用密匙放在需要訪問的服務器上。如果需要連接到SSH服務器上,客戶端軟件就會向服務器發出請求,請求使用用戶的密匙進行
安全驗證。 服務器收到請求之後,先在服務器上用戶的主目錄下找到該用戶的公用密匙,然後把它和用戶發送過來的公用密匙進行比較。如果兩個密匙一致,服務器就用公用密 匙加密“質詢”並把它發送給客戶端軟件。客戶端軟件收到“質詢”之後就可以用用戶的私人密匙解密再把它發送給服務器。
一、通過方式一:口令認證登陸
1、打開putty.exe
1)、Session --> Host Name (填寫服務器地址或者域名,如:192.168.0.250s)
如果遠程主機存在提示如下:
login as: root
[email protected]'s password:
正確輸入密碼後即可正常登陸遠程Linux主機
(注意:
遠程Linux主機的/etc/ssh/sshd_config配置文件
PasswordAuthentication 必須爲 yes
修改後/etc/init.d/sshd reload #加載修改後的配置文件並生效
)
二、通過方式二:密匙認證登陸
方案一:使用puttygen.exe生成的密匙
1、用puttygen.exe生成一對密匙
1)、打開puttygen.exe,直接點擊Generate,鼠標在Key區空白的位置頻繁的晃動
加快隨機數的產生,這樣幾秒鐘就可以生成我們需要的密匙
2)、點擊Save public key->id_rsa.pub(保存密匙)
因爲puttygen.exe生成的格式和Linux系統使用的key格式不同,需要對生成的數據作些簡單的修改:
比如源數據:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-gliethttp"
AAAAB3NzaC1yc2EAAAABJQAAAIEAg2Nx1dBZBypLXY1S78plfmPmwlQj1Ckuoz8o
4vAWjJfOy3i6t2+o7aZMbGN+yUbQY5ScyJu3bK7Wg3ZxXP6qps14J2CAXbdrT9VH
2AA3FIOgbLHii7Bwmjkr5+hVYp7Vazm7cPsGpKnmCWihqX7rkQdY7xq3mOCJI3ry
Nnfkrh0=
---- END SSH2 PUBLIC KEY ----
修改成:(我使用的Linux主機名爲gliethttp)
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAg2Nx1dBZBypLXY1S78plfmPmwlQj1Ckuoz8o4vAWjJfOy3i6t2+
o7aZMbGN+yUbQY5ScyJu3bK7Wg3ZxXP6qps14J2CAXbdrT9VH2AA3FIOgbLHii7Bwmjkr5+hVYp7Vazm7cPsGpK
nmCWihqX7rkQdY7xq3mOCJI3ryNnfkrh0= root@gliethttp
(注意:修改後的數據不能有回車換行)
3)、將生成的id_rsa.pub拷貝到遠程主機gliethttp的/root/.ssh上
重命名爲authorized_keys
[root@gliethttp root]#cd .ssh
[root@gliethttp .sh]#mv id_rsa.pub authorized_keys
這樣sshd服務程序當接收到遠程客戶端的連接申請時會自動匹配.ssh/authorized_keys文件中的密匙
4)、點擊Save private key->id_rsa.ppk(保存私鑰)
如果安全級別不是很苛刻,可以不設置Key passphrase
2、打開putty.exe
1)、Session --> Host Name (填寫服務器地址或者域名)
2)、Connection --> SSH --> Auth (點Browse選擇剛生成的id_rsa.ppk)
3)、open
成功打開後出現如下提示:
login as: root
Authenticating with public key "imported-openssh-key"
方案二:使用Linux主機生成的密匙
1、生成密匙
[root@gliethttp .ssh]#ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e4:9a:47:a7:b4:8a:0b:98:07:b8:70:de:6b:16:2c:0c root@gliethttp
2、將/root/.ssh/id_rsa.pub改名爲/root/.ssh/authorized_keys
[root@gliethttp .ssh]#mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
3、將私鑰id_rsa拷貝到遠程客戶端
1)、如果遠程客戶端是linux,拷貝到遠程客戶端/root/.ssh/即可
2)、putty作爲遠程客戶端在
putty不能識別直接從服務器拷貝來的私鑰,需要使用puttygen.exe進行格式轉換
(1)、打開puttygen.exe --> Conversions --> Import Key
(2)、選擇拷貝過來的私鑰文件id_rsa
(3)、Save private key->id_rsa.ppk(保存私鑰)
4、打開putty.exe
1)、Session --> Host Name (填寫服務器地址或者域名)
2)、Connection --> SSH --> Auth (點Browse選擇剛生成的id_rsa.ppk)
3)、open
成功打開後出現如下提示:
login as: root
Authenticating with public key "imported-openssh-key"
---------------------------------------------------------------
如果我們只希望有私鑰的遠程客戶機才能通過ssh登陸本主機,那麼
遠程Linux主機的/etc/ssh/sshd_config配置文件
PasswordAuthentication 改爲 no
修改後/etc/init.d/sshd reload #加載修改後的配置文件並生效
這樣其他遠程客戶端如果沒有私鑰,那麼這些用戶連輸入密碼的機會都沒有,就會被本主機直接斷開
***************************************************************
注意:
如果putty.exe不能登陸遠程主機,請查看如下幾個選項是否符合:
1)、遠程主機的防火牆是否關閉,通過如下指令關閉防火牆:
[root@gliethttp root]#/etc/init.d/iptables stop
2)、遠程主機是否啓動sshd,通過如下指令啓動:
[root@gliethttp root]#/etc/init.d/sshd start
***************************************************************
putty.exe和puttygen.exe工具下載地址:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
------常見問題
我按照網上的說明做了公私鑰,然後把公鑰內容複製到ssh服務器的/root/.ssh/authorized_keys文件裏,客戶端putty裏設置私鑰,設置自動以root用戶名登錄,登錄的時候提示server refused our key。
sshd版本:openssh-server-3.6.1p2-33.30.1
/etc/sshd/sshd_config裏已經設置:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
[ 本帖最後由 sailer_sh 於 2006-4-17 17:30 編輯 ]
iptables -F 試試
ssh -v 看你的詳細登錄過程!
感覺putty keygen生成的公/私鑰對並不被openssh識別。。。
-------ssh-keygen 的使用方法
ssh-keygen -b 密匙長度 -t 密匙類型
密匙類型可以是:rsa1 (對應SSH1 RSA)、rsa 和 dsa (對應SSH2)