什么是SSH?
SSH的英文全稱是Secure SHell。通過使用SSH,你可以把所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密,這樣"中間人"這種攻擊方式就不可能實(shí)現(xiàn)了,而且也能夠防止DNS和IP欺騙。還有一個(gè)額外的好處就是傳輸?shù)臄?shù)據(jù)是經(jīng)過壓縮的,所以可以加快傳輸?shù)乃俣取SH有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至ppp提供一個(gè)安全的"通道"。SSH客戶端與服務(wù)器端通訊時(shí),用戶名及口令均進(jìn)行了加密,有效防止了對(duì)口令的竊聽。最初SSH是由芬蘭的一家公司開發(fā)的。但是因?yàn)槭馨鏅?quán)和加密算法的限制,現(xiàn)在很多人都轉(zhuǎn)而使用OpenSSH。OpenSSH是SSH的替代軟件,而且是免費(fèi)的,可以預(yù)計(jì)將來(lái)會(huì)有越來(lái)越多的人使用它而不是SSH。SSH是由客戶端和服務(wù)端的軟件組成的。SSH安裝容易、使用簡(jiǎn)單,而且比較常見,一般的Unix系統(tǒng)、Linux系統(tǒng)、FreeBSD系統(tǒng)都附帶有支持SSH的應(yīng)用程序包。
SSH的安全驗(yàn)證是如何工作的?
從客戶端來(lái)看,SSH提供兩種級(jí)別的安全驗(yàn)證。
第一種級(jí)別(基于口令的安全驗(yàn)證)只要你知道自己帳號(hào)和口令,就可以登錄到遠(yuǎn)程主機(jī)。所有傳輸?shù)臄?shù)據(jù)都會(huì)被加密,但是不能保證你正在連接的服務(wù)器就是你想連接的服務(wù)器。可能會(huì)有別的服務(wù)器在冒充真正的服務(wù)器,也就是受到"中間人"這種方式的攻擊。
第二種級(jí)別(基于密匙的安全驗(yàn)證)需要依靠密匙,也就是你必須為自己創(chuàng)建一對(duì)密匙,并把公用密匙放在需要訪問的服務(wù)器上。如果你要連接到SSH服務(wù)器上,客戶端軟件就會(huì)向服務(wù)器發(fā)出請(qǐng)求,請(qǐng)求用你的密匙進(jìn)行安全驗(yàn)證。服務(wù)器收到請(qǐng)求之后,先在你在該服務(wù)器的家目錄下尋找你的公用密匙,然后把它和你發(fā)送過來(lái)的公用密匙進(jìn)行比較。如果兩個(gè)密匙一致,服務(wù)器就用公用密匙加密"質(zhì)詢"(challenge)并把它發(fā)送給客戶端軟件。客戶端軟件收到"質(zhì)詢"之后就可以用你的私人密匙解密再把它發(fā)送給服務(wù)器。
用這種方式,你必須知道自己密匙的口令。但是,與第一種級(jí)別相比,第二種級(jí)別不需要在網(wǎng)絡(luò)上傳送口令。
第二種級(jí)別不僅加密所有傳送的數(shù)據(jù),而且"中間人"這種攻擊方式也是不可能的(因?yàn)樗麤]有你的私人密匙)。但是整個(gè)登錄的過程可能需要10秒。
命令的格式
首先、確保server端的ssh服務(wù)是開的(service shhd start)
然后在client端輸入: ssh usrname@serverip (遠(yuǎn)程登錄)
scp filename usrname@serverip:/URL (遠(yuǎn)程傳輸)
常出現(xiàn)的問題:
問題一
ssh登錄的時(shí)候鏈接端口失敗
提示(1):
#Generated by iptables-save V1.3.3 on Tue Jul 31 14:18:44 2007 # ssh 172.16.81.221 ssh: connect to host 172.16.81.221 port 22: No route to host |
提示(2):
# ssh work@172.16.81.221 ssh: connect to host 172.16.81.221 port 22: Connection refused |
問題二、
ssh到server上的時(shí)候密碼是對(duì)的但是報(bào)如下信息:
# ssh 172.16.81.221 root@172.16.81.221's password: Permission denied, please try again. |
解決方法:
要修改root的ssh權(quán)限,即修改 /etc/ssh/sshd_config文件中
PermitRootLogin no 改為 PermitRootLogin yes
問題三
登錄是出現(xiàn)如下提示:
ssh root@172.16.81.221
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
76:fb:b3:70:14:48:19:d6:29:f9:ba:42:46:be:fb:77.
Please contact your system administrator.
Add correct host key in /home/fante/.ssh/known_hosts to get rid of this
message.
Offending key in /home/fante/.ssh/known_hosts:68
RSA host key for 172.16.81.221 has changed and you have requested strict checking.
Host key verification failed.
server端密碼或是其他發(fā)生改變的時(shí)候。解決方法一般就需要?jiǎng)h除~/.ssh/known_hosts的對(duì)應(yīng)行,然后再登錄即可。