?? ssh使用指南 (轉(zhuǎn)二).txt
字號(hào):
作者:dio
email: hao@peng.com.cn
日期:8/30/2001 4:46:47 PM
拷貝文件
用“scp”拷貝文件
SSH提供了一些命令和shell用來登錄遠(yuǎn)程服務(wù)器。在默認(rèn)情況下它不允許你拷貝文件,但是還是提供了一個(gè)“scp”命令。
假定你想把本地計(jì)算機(jī)當(dāng)前目錄下的一個(gè)名為“dumb”的文件拷貝到遠(yuǎn)程服務(wù)器www.foobar.com上你的家目錄下。而且你在遠(yuǎn)程服務(wù)器上的帳號(hào)名為“bilbo”。可以用這個(gè)命令:
scp dumb bilbo@www.foobar.com:.
把文件拷貝回來用這個(gè)命令:
scp bilbo@www.foobar.com:dumb .
“scp”調(diào)用SSH進(jìn)行登錄,然后拷貝文件,最后調(diào)用SSH關(guān)閉這個(gè)連接。
如果在你的“~/.ssh/config”文件中已經(jīng)為www.foobar.com做了這樣的配置:
Host *fbc
HostName www.foobar.com
User bilbo
ForwardAgent yes
那么你就可以用“fbc”來代替“bilbo@www.foobar.com”,命令就簡化為“scp dumb fbc:.”。
“scp”假定你在遠(yuǎn)程主機(jī)上的家目錄為你的工作目錄。如果你使用相對目錄就要相對于家目錄。
用“scp”命令的“-r”參數(shù)允許遞歸地拷貝目錄。“scp”也可以在兩個(gè)不同的遠(yuǎn)程主機(jī)之間拷貝文件。
有時(shí)候你可能會(huì)試圖作這樣的事:用SSH登錄到www.foobar.com上之后,輸入命令“scp [local machine]:dumb .”想用它把本地的“dumb”文件拷貝到你當(dāng)前登錄的遠(yuǎn)程服務(wù)器上。這時(shí)候你會(huì)看到下面的出錯(cuò)信息:
ssh: secure connection to [local machine] refused
之所以會(huì)出現(xiàn)這樣的出錯(cuò)信息是因?yàn)槟氵\(yùn)行的是遠(yuǎn)程的“scp”命令,它試圖登錄到在你本地計(jì)算機(jī)上運(yùn)行的SSH服務(wù)程序……所以最好在本地運(yùn)行“scp”除非你的本地計(jì)算機(jī)也運(yùn)行SSH服務(wù)程序。
用“sftp”拷貝文件
如果你習(xí)慣使用ftp的方式拷貝文件,可以試著用“sftp”。“sftp”建立用SSH加密的安全的FTP連接通道,允許使用標(biāo)準(zhǔn)的ftp命令。還有一個(gè)好處就是“sftp”允許你通過“exec”命令運(yùn)行遠(yuǎn)程的程序。從2.0.7版以后,圖形化的ftp客戶軟件“gftp”就支持“sftp”。
如果遠(yuǎn)程的服務(wù)器沒有安裝sftp服務(wù)器軟件“sftpserv”,可以把“sftpserv”的可執(zhí)行文件拷貝到你的遠(yuǎn)程的家目錄中(或者在遠(yuǎn)程計(jì)算機(jī)的$PATH環(huán)境變量中設(shè)置的路徑)。“sftp”會(huì)自動(dòng)激活這個(gè)服務(wù)軟件,你沒有必要在遠(yuǎn)程服務(wù)器上有什么特殊的權(quán)限。
用“rsync”拷貝文件
“rsync”是用來拷貝、更新和移動(dòng)遠(yuǎn)程和本地文件的一個(gè)有用的工具,很容易就可以用“-e ssh”參數(shù)和SSH結(jié)合起來使用。“rsync”的一個(gè)優(yōu)點(diǎn)就是,不會(huì)拷貝全部的文件,只會(huì)拷貝本地目錄和遠(yuǎn)程目錄中有區(qū)別的文件。而且它還使用很高效的壓縮算法,這樣拷貝的速度就很快。
用“加密通道”的ftp拷貝文件
如果你堅(jiān)持要用傳統(tǒng)的FTP客戶軟件。SSH可以為幾乎所有的協(xié)議提供“安全通道”。FTP是一個(gè)有一點(diǎn)奇怪的協(xié)議(例如需要兩個(gè)端口)而且不同的服務(wù)程序和服務(wù)程序之間、客戶程序和客戶程序之間還有一些差別。
實(shí)現(xiàn)“加密通道”的方法是使用“端口轉(zhuǎn)發(fā)”。你可以把一個(gè)沒有用到的本地端口(通常大于1000)設(shè)置成轉(zhuǎn)發(fā)到一個(gè)遠(yuǎn)程服務(wù)器上,然后只要連接本地計(jì)算機(jī)上的這個(gè)端口就行了。有一點(diǎn)復(fù)雜是嗎?
其實(shí)一個(gè)基本的想法就是,轉(zhuǎn)發(fā)一個(gè)端口,讓SSH在后臺(tái)運(yùn)行,用下面的命令:
ssh [user@remote host] -f -L 1234:[remote host]:21 tail -f /etc/motd
接著運(yùn)行FTP客戶,把它設(shè)置到指定的端口:
lftp -u [username] -p 1234 localhost
當(dāng)然,用這種方法很麻煩而且很容易出錯(cuò)。所以最好使用前三種方法。
用SSH設(shè)置“加密通道”
“加密通道”的基礎(chǔ)知識(shí)
SSH的“加密通道”是通過“端口轉(zhuǎn)發(fā)”來實(shí)現(xiàn)的。你可以在本地端口(沒有用到的)和在遠(yuǎn)程服務(wù)器上運(yùn)行的某個(gè)服務(wù)的端口之間建立“加密通道”。然后只要連接到本地端口。所有對本地端口的請求都被SSH加密并且轉(zhuǎn)發(fā)到遠(yuǎn)程服務(wù)器的端口。當(dāng)然只有遠(yuǎn)程服務(wù)器上運(yùn)行SSH服務(wù)器軟件的時(shí)候“加密通道”才能工作。可以用下面命令檢查一些遠(yuǎn)程服務(wù)器是否運(yùn)行SSH服務(wù):
telnet [full name of remote host] 22
如果收到這樣的出錯(cuò)信息:
telnet: Unable to connect to remote host: Connection refused
就說明遠(yuǎn)程服務(wù)器上沒有運(yùn)行SSH服務(wù)軟件。
端口轉(zhuǎn)發(fā)使用這樣的命令語法:
ssh -f [username@remote host] -L [local port]:[full name of remote host]:[remote port] [some command]
你不僅可以轉(zhuǎn)發(fā)多個(gè)端口而且可以在“~/.ssh/config”文件中用“LocalForward”設(shè)置經(jīng)常使用的一些轉(zhuǎn)發(fā)端口。
為POP加上“加密通道”
你可以用POP協(xié)議從服務(wù)器上取email。為POP加上“加密通道”可以防止POP的密碼被網(wǎng)絡(luò)監(jiān)聽器(sniffer)監(jiān)聽到。還有一個(gè)好處就是SSH的壓縮方式可以讓郵件傳輸?shù)酶臁?
假定你在pop.foobar.com上有一個(gè)POP帳號(hào),你的用戶名是“bilbo”你的POP口令是“topsecret”。用來建立SSH“加密通道”的命令是:
ssh -f -C bilbo@pop.foobar.com -L 1234:pop.foobar.com:110 sleep 5
(如果要測試,可以把“sleep”的值加到500)。運(yùn)行這個(gè)命令之后會(huì)提示你輸入POP口令:
bilbo@pop.foobar.coms password:
輸入口令之后就可以用“telnet”連接到本地的轉(zhuǎn)發(fā)端口了。
telnet localhost 1234
你會(huì)收到遠(yuǎn)程mail服務(wù)器的“READY”消息。
當(dāng)然,這個(gè)方法要求你手工輸入所有的POP命令,這是很不方便的。可以用Fetchmail(參考how to configure Fetchmail)。Secure POP via SSH mini-HOWTO、man fetchmail和在“/usr/doc/fetchmail-[…]”目錄下的Fetchmail的FAQ都提供了一些具體的例子。
請注意IMAP協(xié)議使用的是不同的端口:IMAP v2的端口號(hào)為143而IMAP v3的端口號(hào)為220。
為X加上“加密通道”
如果你打算在本地計(jì)算機(jī)上運(yùn)行遠(yuǎn)程SSH服務(wù)器上的X程序,那么登錄到遠(yuǎn)程的計(jì)算機(jī)上,創(chuàng)建一個(gè)名為“~/.ssh/environment”的文件并加上這一行:
XAUTHORITY=/home/[remote user name]/.Xauthority
(如果在遠(yuǎn)程主機(jī)上你的家目錄下不存在“.Xauthority”這個(gè)文件,那么當(dāng)用SSH登錄的時(shí)候就會(huì)自動(dòng)創(chuàng)建)。
比如啟動(dòng)一個(gè)X程序(xterm)可以這個(gè)命令:
ssh -f -X -l [remote user name] [remote machine] xterm
這將在遠(yuǎn)程運(yùn)行xterm這個(gè)程序。其它的X程序也是用相同的方法。
為linuxconf加上“加密通道”
Linuxconf是Linux的配置工具,它支持遠(yuǎn)程管理。Linuxconf的FAQ重說明了如何通過SSH使用linuxconf:
其命令為:
remadmin --exec [link_command] linuxconf --guiproto
如果你想在兩臺(tái)計(jì)算機(jī)之間用加密的方式傳送信息,那么最好用ssh。命令是:
remadmin --exec ssh -l [account] linuxconf --guiproto
這是非常有效的而且運(yùn)行用圖形界面管理計(jì)算機(jī)。
這種方法需要在客戶端安裝linuxconf。其它的方法還有直接登錄到服務(wù)器上用“X11Forwarding”或字符界面運(yùn)行l(wèi)inuxconf。
為Webmin加上“加密通道”
Webmin是一個(gè)新的基于瀏覽器的配置工具。它運(yùn)行在1000端口。你可以用SSH的“端口轉(zhuǎn)發(fā)”對它進(jìn)行加密:
ssh -f -l [remote user name] [remote host] -L 1234:[remote host]:10000 tail -f /etc/motd
把瀏覽器指向
http://localhost:1234
版權(quán)說明
這篇文章翻譯和改編自:http://www.mandrakeuser.org/secure/index.html。英文版的版權(quán)屬于“MandrakeSoft SA and LSTB 1999/2000”。
中文版版權(quán)歸譯者brimmer(brimmer@linuxaid.com.cn)和www.linuxaid.com.cn站點(diǎn)所有。
本文遵循Open Content Public Licence。
來源:JJ的Linux世界
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -