?? ssh使用指南 (轉(zhuǎn)).txt
字號:
作者:dio
email: hao@peng.com.cn
日期:8/30/2001 4:44:33 PM
介紹SSH
什么是SSH?
傳統(tǒng)的網(wǎng)絡(luò)服務(wù)程序,如:ftp、pop和telnet在本質(zhì)上都是不安全的,因為它們在網(wǎng)絡(luò)上用明文傳送口令和數(shù)據(jù),別有用心的人非常容易就可以截獲這些口令和數(shù)據(jù)。而且,這些服務(wù)程序的安全驗證方式也是有其弱點的,就是很容易受到“中間人”(man-in-the-middle)這種方式的攻擊。所謂“中間人”的攻擊方式,就是“中間人”冒充真正的服務(wù)器接收你的傳給服務(wù)器的數(shù)據(jù),然后再冒充你把數(shù)據(jù)傳給真正的服務(wù)器。服務(wù)器和你之間的數(shù)據(jù)傳送被“中間人”一轉(zhuǎn)手做了手腳之后,就會出現(xiàn)很嚴(yán)重的問題。
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的替代軟件,而且是免費的,可以預(yù)計將來會有越來越多的人使用它而不是SSH。
SSH是由客戶端和服務(wù)端的軟件組成的,有兩個不兼容的版本分別是:1.x和2.x。用SSH 2.x的客戶程序是不能連接到SSH 1.x的服務(wù)程序上去的。OpenSSH 2.x同時支持SSH 1.x和2.x。
SSH的安全驗證是如何工作的
從客戶端來看,SSH提供兩種級別的安全驗證。
第一種級別(基于口令的安全驗證)只要你知道自己帳號和口令,就可以登錄到遠(yuǎn)程主機(jī)。所有傳輸?shù)臄?shù)據(jù)都會被加密,但是不能保證你正在連接的服務(wù)器就是你想連接的服務(wù)器。可能會有別的服務(wù)器在冒充真正的服務(wù)器,也就是受到“中間人”這種方式的攻擊。
第二種級別(基于密匙的安全驗證)需要依靠密匙,也就是你必須為自己創(chuàng)建一對密匙,并把公用密匙放在需要訪問的服務(wù)器上。如果你要連接到SSH服務(wù)器上,客戶端軟件就會向服務(wù)器發(fā)出請求,請求用你的密匙進(jìn)行安全驗證。服務(wù)器收到請求之后,先在你在該服務(wù)器的家目錄下尋找你的公用密匙,然后把它和你發(fā)送過來的公用密匙進(jìn)行比較。如果兩個密匙一致,服務(wù)器就用公用密匙加密“質(zhì)詢”(challenge)并把它發(fā)送給客戶端軟件??蛻舳塑浖盏健百|(zhì)詢”之后就可以用你的私人密匙解密再把它發(fā)送給服務(wù)器。
用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網(wǎng)絡(luò)上傳送口令。
第二種級別不僅加密所有傳送的數(shù)據(jù),而且“中間人”這種攻擊方式也是不可能的(因為他沒有你的私人密匙)。但是整個登錄的過程可能需要10秒。
安裝并測試OpenSSH
因為受到美國法律的限制,在很多Linux的發(fā)行版中都沒有包括OpenSSH。但是,可以從網(wǎng)絡(luò)上下載并安裝OpenSSH(有關(guān)OpenSSH的安裝和配置請參考:http://www.linuxaid.com.cn/engineer/brimmer/html/OpenSSH.htm)。
安裝完OpenSSH之后,用下面命令測試一下:
ssh -l [your accountname on the remote host] [address of the remote host]
如果OpenSSH工作正常,你會看到下面的提示信息:
The authenticity of host [hostname] cant be established.
Key fingerprint is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52.
Are you sure you want to continue connecting (yes/no)?
OpenSSH告訴你它不知道這臺主機(jī),但是你不用擔(dān)心這個問題,因為你是第一次登錄這臺主機(jī)。鍵入“yes”。這將把這臺主機(jī)的“識別標(biāo)記”加到“~/.ssh/know_hosts”文件中。第二次訪問這臺主機(jī)的時候就不會再顯示這條提示信息了。
然后,SSH提示你輸入遠(yuǎn)程主機(jī)上你的帳號的口令。輸入完口令之后,就建立了SSH連接,這之后就可以象使用telnet那樣使用SSH了。
SSH的密匙
生成你自己的密匙對
生成并分發(fā)你自己的密匙有兩個好處:
1) 可以防止“中間人”這種攻擊方式
2) 可以只用一個口令就登錄到所有你想登錄的服務(wù)器上
用下面的命令可以生成密匙:
ssh-keygen
如果遠(yuǎn)程主機(jī)使用的是SSH 2.x就要用這個命令:
ssh-keygen –d
在同一臺主機(jī)上同時有SSH1和SSH2的密匙是沒有問題的,因為密匙是存成不同的文件的。
ssh-keygen命令運行之后會顯示下面的信息:
Generating RSA keys: ............................ooooooO......ooooooO
Key generation complete.
Enter file in which to save the key (/home/[user]/.ssh/identity):
[按下ENTER就行了]
Created directory /home/[user]/.ssh.
Enter passphrase (empty for no passphrase):
[輸入的口令不會顯示在屏幕上]
Enter same passphrase again:
[重新輸入一遍口令,如果忘記了口令就只能重新生成一次密匙了]
Your identification has been saved in /home/[user]/.ssh/identity.
[這是你的私人密匙]
Your public key has been saved in /home/[user]/.ssh/identity.pub.
The key fingerprint is: 2a:dc:71:2f:27:84:a2:e4:a1:1e:a9:63:e2:fa:a5:89 [user]@[local machine]
“ssh-keygen –d”做的是幾乎同樣的事,但是把一對密匙存為(默認(rèn)情況下)“/home/[user]/.ssh/id_dsa”(私人密匙)和“/home/[user]/.ssh/id_dsa.pub”(公用密匙)。
現(xiàn)在你有一對密匙了:公用密匙要分發(fā)到所有你想用ssh登錄的遠(yuǎn)程主機(jī)上去;私人密匙要好好地保管防止別人知道你的私人密匙。用“l(fā)s –l ~/.ssh/identity”或“l(fā)s –l ~/.ssh/id_dsa”所顯示的文件的訪問權(quán)限必須是“-rw-------”。
如果你懷疑自己的密匙已經(jīng)被別人知道了,不要遲疑馬上生成一對新的密匙。當(dāng)然,你還要重新分發(fā)一次公用密匙。
分發(fā)公用密匙
在每一個你需要用SSH連接的遠(yuǎn)程服務(wù)器上,你要在自己的家目錄下創(chuàng)建一個“.ssh”的子目錄,把你的公用密匙“identity.pub” 拷貝到這個目錄下并把它重命名為“authorized_keys”。然后執(zhí)行:
chmod 644 .ssh/authorized_keys
這一步是必不可少的。如果除了你之外別人對“authorized_keys”文件也有寫的權(quán)限,SSH就不會工作。
如果你想從不同的計算機(jī)登錄到遠(yuǎn)程主機(jī),“authorized_keys”文件也可以有多個公用密匙。在這種情況下,必須在新的計算機(jī)上重新生成一對密匙,然后把生成的“identify.pub”文件拷貝并粘貼到遠(yuǎn)程主機(jī)的“authorized_keys”文件里。當(dāng)然在新的計算機(jī)上你必須有一個帳號,而且密匙是用口令保護(hù)的。有一點很重要,就是當(dāng)你取消了這個帳號之后,別忘了把這一對密匙刪掉。
配置SSH
配置客戶端的軟件
OpenSSH有三種配置方式:命令行參數(shù)、用戶配置文件和系統(tǒng)級的配置文件(“/etc/ssh/ssh_config”)。命令行參數(shù)優(yōu)先于配置文件,用戶配置文件優(yōu)先于系統(tǒng)配置文件。所有的命令行的參數(shù)都能在配置文件中設(shè)置。因為在安裝的時候沒有默認(rèn)的用戶配置文件,所以要把“/etc/ssh/ssh_config”拷貝并重新命名為“~/.ssh/config”。
標(biāo)準(zhǔn)的配置文件大概是這樣的:
[lots of explanations and possible options listed]
# Be paranoid by default
Host *
ForwardAgent no
ForwardX11 no
FallBackToRsh no
還有很多選項的設(shè)置可以用“man ssh”查看“CONFIGURATION FILES”這一章。
配置文件是按順序讀取的。先設(shè)置的選項先生效。
假定你在www.foobar.com上有一個名為“bilbo”的帳號。而且你要把“ssh-agent”和“ssh-add”結(jié)合起來使用并且使用數(shù)據(jù)壓縮來加快傳輸速度。因為主機(jī)名太長了,你懶得輸入這么長的名字,用“fbc”作為“www.foobar.com”的簡稱。你的配置文件可以是這樣的:
Host *fbc
HostName www.foobar.com
User bilbo
ForwardAgent yes
Compression yes
# Be paranoid by default
Host *
ForwardAgent no
ForwardX11 no
FallBackToRsh no
你輸入“ssh fbc”之后,SSH會自動地從配置文件中找到主機(jī)的全名,用你的用戶名登錄并且用“ssh-agent”管理的密匙進(jìn)行安全驗證。這樣很方便吧!
用SSH連接到其它遠(yuǎn)程計算機(jī)用的還是“paranoid(偏執(zhí))”默認(rèn)設(shè)置。如果有些選項沒有在配置文件或命令行中設(shè)置,那么還是使用默認(rèn)的“paranoid”設(shè)置。
在我們上面舉的那個例子中,對于到www.foobar.com的SSH連接:“ForwardAgent”和“Compression”被設(shè)置為“Yes”;其它的設(shè)置選項(如果沒有用命令行參數(shù))“ForwardX11”和“FallBackToRsh”都被設(shè)置成“No”。
其它還有一些需要仔細(xì)看一看的設(shè)置選項是:
l CheckHostIP yes
這個選項用來進(jìn)行IP地址的檢查以防止DNS欺騙。
l CompressionLevel
壓縮的級別從“1”(最快)到“9”(壓縮率最高)。默認(rèn)值為“6”。
l ForwardX11 yes
為了在本地運行遠(yuǎn)程的X程序必須設(shè)置這個選項。
l LogLevel DEBUG
當(dāng)SSH出現(xiàn)問題的時候,這選項就很有用了。默認(rèn)值為“INFO”。
配置服務(wù)端的軟件
SSH服務(wù)器的配置使用的是“/etc/ssh/sshd_config”配置文件,這些選項的設(shè)置在配置文件中已經(jīng)有了一些說明而且用“man sshd”也可以查看幫助。請注意OpenSSH對于SSH 1.x和2.x沒有不同的配置文件。
在默認(rèn)的設(shè)置選項中需要注意的有:
l PermitRootLogin yes
最好把這個選項設(shè)置成“PermitRootLogin without-password”,這樣“root”用戶就不能從沒有密匙的計算機(jī)上登錄。把這個選項設(shè)置成“no”將禁止“root”用戶登錄,只能用“su”命令從普通用戶轉(zhuǎn)成“root”。
l X11Forwarding no
把這個選項設(shè)置成“yes”允許用戶運行遠(yuǎn)程主機(jī)上的X程序。就算禁止這個選項也不能提高服務(wù)器的安全因為用戶可以安裝他們自己的轉(zhuǎn)發(fā)器(forwarder),請參看“man sshd”。
l PasswordAuthentication yes
把這個選項設(shè)置為“no”只允許用戶用基于密匙的方式登錄。這當(dāng)然會給那些經(jīng)常需要從不同主機(jī)登錄的用戶帶來麻煩,但是這能夠在很大程度上提高系統(tǒng)的安全性。基于口令的登錄方式有很大的弱點。
l # Subsystem /usr/local/sbin/sftpd
把最前面的#號去掉并且把路徑名設(shè)置成“/usr/bin/sftpserv”,用戶就能使用“sftp”(安全的FTP)了(sftpserv在sftp軟件包中)。因為很多用戶對FTP比較熟悉而且“scp”用起來也有一些麻煩,所以“sftp”還是很有用的。而且2.0.7版本以后的圖形化的ftp工具“gftp”也支持“sftp”。
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -