參考網(wǎng)址:http://www.cnblogs.com/programfish/p/4098091.html
SSH簡(jiǎn)介
ssh全稱(chēng):secure shell
SSH 為 Secure Shell 的縮寫(xiě),由 IETF 的網(wǎng)絡(luò)小組(Network Working Group)所制定;SSH 為建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議。SSH 是目前較可靠,專(zhuān)為遠(yuǎn)程登錄會(huì)話(huà)和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。
ssh 層次結(jié)構(gòu)
- 傳輸層協(xié)議【SSH-TRANS】
提供服務(wù)器認(rèn)證,數(shù)據(jù)機(jī)密性,信息完整性 等的支持 - 用戶(hù)認(rèn)證協(xié)議【SSH-AUTH】
為服務(wù)器提供客戶(hù)端的身份鑒別 - 連接協(xié)議【SSH-CONN】
將加密的信息隧道復(fù)用成若干個(gè)邏輯通道
相關(guān)工具
- sftp 使用了加密傳輸方式的遠(yuǎn)程傳輸工具,使用命令與ftp基本一樣,這種傳輸方式使用了加密/解密技術(shù),所以傳輸效率比普通的FTP要低,適合網(wǎng)絡(luò)安全性要求更高的情況使用。
- scp 非交互式sftp-server的客戶(hù)端,用來(lái)向服務(wù)器上傳/下載文件
- sshfs 遠(yuǎn)程目錄掛載工具,非常方便實(shí)用,使用方法參見(jiàn)http://www.programfish.com/blog/?p=145
ssh認(rèn)證方式
- password (基于口令的安全認(rèn)證)
1.指定ip連接
ssh 192.168.1.1
2.指定主機(jī)名連接
ssh hostname(www.baidu.com)
3.指定登陸用戶(hù)名連接
ssh lzy@192.168.1.1
注:第一次連接時(shí)會(huì)出現(xiàn)提示,ssh會(huì)提示你是否要信 任這個(gè)主機(jī),這里需要你鍵入yes回車(chē),選擇了信任這臺(tái)主機(jī)后ssh會(huì)把這臺(tái)主機(jī)上的公鑰(public key)記錄在~/.ssh/known_hosts這個(gè)文件下(.ssh是你家目錄下的一個(gè)隱藏目錄)。
密匙不對(duì)導(dǎo)致的連接錯(cuò)誤可手動(dòng)刪除known_hosts里面相應(yīng)內(nèi)容或者全部?jī)?nèi)容解決此問(wèn)題。
4.使用別名認(rèn)證
在~/.ssh下的config文件(沒(méi)有則創(chuàng)建)里加入如下格式的內(nèi)容:
Host cg
HostName 172.17.0.3
User lfly
這樣的話(huà)我就把上面我的遠(yuǎn)程主機(jī)設(shè)置了一個(gè)別名為cg 。
下次就可以這樣連接到該主機(jī):
lfly@linux-oj9e:~> ssh cg
上面的命令等價(jià)于: lfly@linux-oj9e:~> ssh lfly@172.17.0.3
如果要設(shè)置多個(gè)遠(yuǎn)程主機(jī)的別名,則添加多個(gè)以上的三行為一組的內(nèi)容進(jìn)config文件即可。
- public key(基于密匙的安全認(rèn)證)
過(guò)程:
先在本地創(chuàng)建一對(duì)密鑰(公鑰和私鑰),并把公匙放在需要訪(fǎng)問(wèn)的服務(wù)器上;
1.客戶(hù)端向遠(yuǎn)程服務(wù)器發(fā)出請(qǐng)求用你的公鑰認(rèn)證;
2.服務(wù)器收到請(qǐng)求之后,在本地找出你的公鑰,然后把它和你發(fā)送過(guò)來(lái)的公鑰進(jìn)行比較。若兩密匙一致,服務(wù)器就用公匙加密“質(zhì)詢(xún)”(challenge)并把它發(fā)送給客戶(hù)端軟件;
3.客戶(hù)端軟件收到“質(zhì)詢(xún)”之后就可以用私鑰解密后再把它發(fā)送給服務(wù)器。
4.這種方式不需要在網(wǎng)絡(luò)上傳送口令,但你要記住密鑰的口令(在創(chuàng)建密鑰時(shí)會(huì)要求設(shè)置)。public key認(rèn)證可以有效避免“中間人”攻擊。
公匙加密算法:rsa和dsa
上傳公匙方法:
1.scp
需設(shè)置.ssh(700)目錄權(quán)限和authorized_keys(644)權(quán)限
lfly@linux-oj9e:~/.ssh>scp id_rsa.pub lfly@172.17.0.3:~/.ssh/authorized_keys
2.ssh-copy-id
lfly@linux-oj9e:~/.ssh> ssh-copy-id -i ~/.ssh/id_rsa.pub lfly@192.168.56.101
此方法權(quán)限自動(dòng)設(shè)置
- Hostbased 驗(yàn)證