SSH的英文全稱是Secure SHell。通過使用SSH,你可以把所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密,這樣“中間人”這種攻擊方式就不可能實現(xiàn)了,而且也能夠防止DNS和IP欺騙。還有一個額外的好處就是傳輸?shù)臄?shù)據(jù)是經(jīng)過壓縮的,所以可以加快傳輸?shù)乃俣?。SSH有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至ppp提供一個安全的“通道”
最初SSH是由芬蘭的一家公司開發(fā)的。但是因為受版權(quán)和加密算法的限制,現(xiàn)在很多人都轉(zhuǎn)而使用OpenSSH
OpenSSH是SSH協(xié)議的開源版本(SSH:Secure SHell)。
今天為大家介紹下如何在Windows系統(tǒng)下安裝OpenSSH并通過ssh-keygen命令生成密鑰;
一、下載OpenSSH
二、安裝OpenSSH
1、語言選擇:中文、英文都可以
下一步
“接受協(xié)議”繼續(xù)
這里因為我們是使用SSH連接Linux所以只需要客戶端就可以了,取消“服務(wù)器端”的選擇
完成Windows下的openssh安裝
三、測試SSH是否安裝成功
進(jìn)入windows的命令行工具,輸入ssh命令,出現(xiàn)下面信息即表示我們安裝成功
四、利用ssh-keygen命令生成密鑰對(公鑰及對應(yīng)的私鑰)
ssh-keygen具體參數(shù)如下:
-a trials
在使用 -T 對 DH-GEX 候選素數(shù)進(jìn)行安全篩選時需要執(zhí)行的基本測試數(shù)量。
-B 顯示指定的公鑰/私鑰文件的 bubblebabble 摘要。
-b bits
指定密鑰長度。對于RSA密鑰,最小要求768位,默認(rèn)是2048位。DSA密鑰必須恰好是1024位(FIPS 186-2 標(biāo)準(zhǔn)的要求)。
-C comment
提供一個新注釋
-c 要求修改私鑰和公鑰文件中的注釋。本選項只支持 RSA1 密鑰。
程序?qū)⑻崾据斎胨借€文件名、密語(如果存在)、新注釋。
-D reader
下載存儲在智能卡 reader 里的 RSA 公鑰。
-e 讀取OpenSSH的私鑰或公鑰文件,并以 RFC 4716 SSH 公鑰文件格式在 stdout 上顯示出來。
該選項能夠為多種商業(yè)版本的 SSH 輸出密鑰。
-F hostname
在 known_hosts 文件中搜索指定的 hostname ,并列出所有的匹配項。
這個選項主要用于查找散列過的主機(jī)名/ip地址,還可以和 -H 選項聯(lián)用打印找到的公鑰的散列值。
-f filename
指定密鑰文件名。
-G output_file
為 DH-GEX 產(chǎn)生候選素數(shù)。這些素數(shù)必須在使用之前使用 -T 選項進(jìn)行安全篩選。
-g 在使用 -r 打印指紋資源記錄的時候使用通用的 DNS 格式。
-H 對 known_hosts 文件進(jìn)行散列計算。這將把文件中的所有主機(jī)名/ip地址替換為相應(yīng)的散列值。
原來文件的內(nèi)容將會添加一個".old"后綴后保存。這些散列值只能被 ssh 和 sshd 使用。
這個選項不會修改已經(jīng)經(jīng)過散列的主機(jī)名/ip地址,因此可以在部分公鑰已經(jīng)散列過的文件上安全使用。
-i 讀取未加密的SSH-2兼容的私鑰/公鑰文件,然后在 stdout 顯示OpenSSH兼容的私鑰/公鑰。
該選項主要用于從多種商業(yè)版本的SSH中導(dǎo)入密鑰。
-l 顯示公鑰文件的指紋數(shù)據(jù)。它也支持 RSA1 的私鑰。
對于RSA和DSA密鑰,將會尋找對應(yīng)的公鑰文件,然后顯示其指紋數(shù)據(jù)。
-M memory
指定在生成 DH-GEXS 候選素數(shù)的時候最大內(nèi)存用量(MB)。
-N new_passphrase
提供一個新的密語。
-P passphrase
提供(舊)密語。
-p 要求改變某私鑰文件的密語而不重建私鑰。程序?qū)⑻崾据斎胨借€文件名、原來的密語、以及兩次輸入新密語。
-q 安靜模式。用于在 /etc/rc 中創(chuàng)建新密鑰的時候。
-R hostname
從 known_hosts 文件中刪除所有屬于 hostname 的密鑰。
這個選項主要用于刪除經(jīng)過散列的主機(jī)(參見 -H 選項)的密鑰。
-r hostname
打印名為 hostname 的公鑰文件的 SSHFP 指紋資源記錄。
-S start
指定在生成 DH-GEX 候選模數(shù)時的起始點(16進(jìn)制)。
-T output_file
測試 Diffie-Hellman group exchange 候選素數(shù)(由 -G 選項生成)的安全性。
-t type
指定要創(chuàng)建的密鑰類型。可以使用:"rsa1"(SSH-1) "rsa"(SSH-2) "dsa"(SSH-2)
-U reader
把現(xiàn)存的RSA私鑰上傳到智能卡 reader
-v 詳細(xì)模式。ssh-keygen 將會輸出處理過程的詳細(xì)調(diào)試信息。常用于調(diào)試模數(shù)的產(chǎn)生過程。
重復(fù)使用多個 -v 選項將會增加信息的詳細(xì)程度(最大3次)。
-W generator
指定在為 DH-GEX 測試候選模數(shù)時想要使用的 generator
-y 讀取OpenSSH專有格式的公鑰文件,并將OpenSSH公鑰顯示在 stdout 上。
我們常用的參數(shù)基本上是下面幾個:
-t:指定要創(chuàng)建的密鑰類型。可以使用:"rsa1"(SSH-1) "rsa"(SSH-2) "dsa"(SSH-2);默認(rèn)是RSA
-b:指定密鑰長度。對于RSA密鑰,最小要求768位,默認(rèn)是2048位。DSA密鑰必須恰好是1024位(FIPS 186-2 標(biāo)準(zhǔn)的要求)。
-f :指定密鑰文件名
-C:指定密鑰注釋
在命令行工具中輸入“ssh-keygen -t rsa -b 4096 -C "192.168.1.1"” 提示以下信息,這里我設(shè)置密鑰位數(shù)為4096默認(rèn)為2048
Microsoft Windows [版本 6.1.7601]
版權(quán)所有 (c) 2009 Microsoft Corporation。保留所有權(quán)利。
C:\Users\Administrator>ssh-keygen -t rsa -b 4096 -C "192.168.1.1"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/Administrator1/.ssh/id_rsa): key #這里輸入文件名windows下必須輸入,如果不輸入會出現(xiàn)錯誤
Enter passphrase (empty for no passphrase):#輸入密鑰密語可以理解成密鑰的密碼,可以不輸入
Enter same passphrase again:#再次輸入密鑰密碼
Your identification has been saved in key.
Your public key has been saved in key.pub.
The key fingerprint is:
SHA256:Ke9MH5QsT19TJqQgimryAn27Vp+MuIFeIff/2VL6hQE 192.168.1.1
The key's randomart image is:
+---[RSA 4096]----+
| . . . |
| . . . . o |
| . . E . . o|
| . . o o + |
|o = + . S = . o |
|.+ = +.o = ..+ . |
|. o +o.+o.ooo . |
| o .oo.=+.o+ . |
| ..o. +.+oo |
+----[SHA256]-----+
C:\Users\Administrator>
完成后打開當(dāng)前用戶目錄看看是否有剛剛生成的key文件,實際上應(yīng)該是2個文件才對key是私鑰,key.pub是公鑰
我的當(dāng)前用戶目錄是“C:\Users\Administrator”,可能會和大家不一樣
五、Linux服務(wù)器SSH設(shè)置
生成密鑰對后還需要把公鑰即我們剛才生成的key.pub文件上傳到linux服務(wù)器上
注意:上傳位置是我們登錄Linux所用用戶的家目錄下的.ssh目錄下
如果目錄不存在,需要創(chuàng)建~/.ssh目錄,并把目錄權(quán)限設(shè)置為700),
把公鑰改名為authorized_keys,并且把它的用戶權(quán)限設(shè)成600
如:/root/.ssh/
然后把我們上傳的key.pub文件改名為:authorized_keys
[root@server ~]# mv key.pub authorized_keys
[root@server ~]# chmod 700 .ssh
[root@server ~]# chmod 600 authorized_keys
好了,這樣就可以使用SSH密鑰連接Linux服務(wù)器了
如果你沒有連接成功請請檢查一下.ssh目錄與authorized_keys文件的權(quán)限是否正確
更多關(guān)于SSH連接Linux服務(wù)器的文章請查看下面的相關(guān)文章