SSH(Secure SHell)使用1. 什么是SSH?
傳統(tǒng)的網(wǎng)絡(luò)服務(wù)程序,如ftp,pop和telnet在本質(zhì)上是不安全的,因?yàn)樗鼈兪褂妹魑?/span>
傳送口令和數(shù)據(jù),很容易被冒充真正服務(wù)器的中間人修改通信數(shù)據(jù),影響你的正常通信。
SSH可以對(duì)你的數(shù)據(jù)進(jìn)行加密,所以可以防止"中間人"攻擊,DNS和IP欺騙,還一個(gè)
好處是它對(duì)傳輸數(shù)據(jù)進(jìn)行了壓縮,可以加快傳輸?shù)乃俣取?/span>
現(xiàn)在一般使用的是OpenSSH 2.X,免費(fèi),而且同時(shí)支持1.x和2.x的版本。
2. SSH是如何工作的?從客戶端來(lái)看,SSH提供兩種級(jí)別的安全驗(yàn)證:
1. 基于口令的安全驗(yàn)證,只要知道自己的賬號(hào)和密碼就可以登錄遠(yuǎn)程的主機(jī),數(shù)據(jù)也都是
加密的,但不能確定的是正在連接的服務(wù)器是不是你想到登錄的服務(wù)器,也有可能受到"中間人"
的攻擊
2. 基于密匙的安全驗(yàn)證,需要自己創(chuàng)建一對(duì)密匙,并把公用密匙放在服務(wù)器上。如果你需要
連接到SSH服務(wù)器上,客戶端就會(huì)向服務(wù)器端發(fā)出請(qǐng)求,請(qǐng)求用你的密匙進(jìn)行安全驗(yàn)證。服務(wù)器
收到請(qǐng)求之后,先在服務(wù)器上找到公用密匙,再用這個(gè)密匙和你發(fā)送過(guò)來(lái)的進(jìn)行比對(duì)。如果兩個(gè)
密匙一致,服務(wù)器就用公用密匙加密"質(zhì)詢"(challenge)并把它發(fā)送給客戶端。客戶端軟件收到
質(zhì)詢之后再用你的私人密匙進(jìn)行解密再把它發(fā)給服務(wù)器。
第二種方式更安全,數(shù)據(jù)加密,但登錄時(shí)間可以比較長(zhǎng)。
3. 為什么要采用第二種方法登錄?采用密碼登錄的缺點(diǎn):
a)用戶無(wú)法設(shè)置空密碼(即使系統(tǒng)允許空密碼,也會(huì)十分危險(xiǎn))
b)密碼容易被人偷窺或猜到
c)服務(wù)器上的一個(gè)帳戶若要給多人使用,則必須讓所有使用者都知道密碼,
導(dǎo)致密碼容易泄露,而且修改密碼時(shí)必須通知所有人
而采用公鑰可以解決以上問(wèn)題:
a)公鑰認(rèn)證允許使用空密碼,省去每次登錄都需要輸入密碼的麻煩
b)多個(gè)使用者可以通過(guò)各自的密鑰登錄到系統(tǒng)上的同一個(gè)用戶
c)即使修改了對(duì)應(yīng)用戶的密碼,也不會(huì)影響登陸
d)若同時(shí)禁用密碼認(rèn)證,則只要保證私鑰的安全,不會(huì)受到暴力破解的威脅
4. 本機(jī)Win 7和Virtual box虛擬機(jī)ubuntu之間的實(shí)驗(yàn)4.1 進(jìn)行ssh的密碼口令連接1. 需要在VB中設(shè)置連接方式由NAT改為Bridge
2. 使用"sudo apt-get install openssh-server"幫Ubuntu安裝ssh服務(wù)器,
使用"sudo service ssh start"啟動(dòng)ssh服務(wù)
可以使用命令ps -e|grep ssh來(lái)查看是否成功啟動(dòng)
如果沒(méi)有啟動(dòng),可以使用命令sudo /etc/init.d/ssh start啟動(dòng)服務(wù)
3. 在Windows即主機(jī)中使用Putty登錄Ubuntu,輸入U(xiǎn)buntu的ip地址即可,
其他默認(rèn)。putty的下載地址:
4. 輸入用戶名和密碼就可以遠(yuǎn)程登錄ubuntu了
4.2 進(jìn)行ssh的密鑰連接-在Win 7下制作密鑰4.2.1 使用puttygen制作密鑰啟動(dòng)puttygen,為了兼容openssh密鑰,選擇"SSH2 RSA",點(diǎn)擊Generate,
并在窗口的空白區(qū)域隨意移動(dòng)鼠標(biāo)以獲得生成密鑰的隨機(jī)數(shù)據(jù),直到進(jìn)度條結(jié)束為止。
完成效果為:
輸入key passphrase和confirm passphrase,類似私鑰密碼,點(diǎn)擊"Save private key"。
公鑰信息在上面的文本框中,等下需要復(fù)制到ubuntu系統(tǒng)的特定文件中。
可以看到私鑰的保存內(nèi)容包含了公鑰和私鑰。
4.2.2 修改ubuntu系統(tǒng)中openssh的配置修改/etc/ssh/sshd_config:
PermitRootLogin no # 禁止root用戶登陸
StrictModes yes # 檢查密鑰的用戶和權(quán)限是否正確,需要是authorized_keys文件一定為644權(quán)限,默認(rèn)是打開的
RSAAuthentication yes # 啟用 RSA 認(rèn)證
AuthorizedKeysFile .ssh/authorized_keys # 驗(yàn)證公鑰的存放路徑
PubkeyAuthentication yes # 啟用公鑰認(rèn)證
PasswordAuthentication no # 禁止密碼認(rèn)證,只能進(jìn)行密鑰連接,默認(rèn)是打開的。
ChallengeResponseAuthentication no #關(guān)閉挑戰(zhàn)應(yīng)答方式
UsePAM no #不使用PAM認(rèn)證
以上參數(shù)可以根據(jù)需要進(jìn)行調(diào)整。
然后重啟sshd服務(wù):
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
或者直接:
sudo /etc/init.d/ssh restart
4.2.3 拷貝公鑰信息到ubuntu的特定文件中在之前的窗口中,拷貝公鑰內(nèi)容,并寫入~/.ssh/authroized_keys文件下
如果沒(méi)有.ssh目錄和authroized_keys文件,需要自己創(chuàng)建,并且要修改目錄和文件的權(quán)限
>mkdir ~/.ssh
>chmod 700 ~/.ssh
>emacs ~/.ssh/authorized_keys
>chmod 644 ~/.ssh/authorized_keys
644權(quán)限代表別人不能對(duì)此文件進(jìn)行寫操作,用來(lái)保護(hù)別人不能隨意把他的
公鑰寫進(jìn)去。
4.2.4 使用putty進(jìn)行密鑰登錄在Connection->SSH->Auth中選擇私鑰文件:
在Connection->Data中寫入你的登錄時(shí)用的用戶名
也要在Session那寫在ubuntu系統(tǒng)的IP,再點(diǎn)擊open按鈕。
這個(gè)時(shí)候,需要輸入passphrase密碼,也就是私鑰密碼。這個(gè)密碼的作用是保護(hù)
私鑰文件,就算別人得到你的私鑰文件,沒(méi)有這個(gè)密碼也不能進(jìn)行登錄。
4.3 進(jìn)行ssh的密鑰連接-在Ubuntu下制作密鑰4.3.1 在Linux下生成密鑰在命令行下運(yùn)行:
> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/compilers/.ssh/id_rsa): #輸入私鑰保存地址
Enter passphrase (empty for no passphrase): #輸入私鑰密碼
Enter same passphrase again: #確認(rèn)密碼
Your identification has been saved in /home/compilers/.ssh/id_rsa.
Your public key has been saved in /home/compilers/.ssh/id_rsa.pub.
The key fingerprint is:
e7:f6:98:57:f0:d9:93:54:30:76:9f:10:09:c0:f8:b9 compilers@compilers-vm
The key's randomart image is:
+--[ RSA 2048]----+
| o....o*..|
| . . o.o+|
| . . .o|
| o . . |
| S o o.o.|
| E +o.|
| o . .|
| . +. |
| o.. |
+-----------------+
4.3.2 把公鑰寫入authorized_keys文件中> cd ~/.ssh
> cat id_rsa.pub >> quthorized_keys #需要換行加入新的內(nèi)容
4.3.3 生成putty私鑰1. 把id_rsa傳到windows系統(tǒng)上。
2. 使用puttygen的"Load private key"讀取id_rsa文件,并輸入私鑰密碼:
文本框里的內(nèi)容應(yīng)該和id_rsa.pub中的一致。點(diǎn)擊"Save private key"保存私鑰。
4.3.4 使用putty進(jìn)行密鑰登錄那就是和之前一樣的操作:
|
|