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