1. linux下cp和scp的詳細說明及其他們的區別
一、說明
cp:是在同一個linux系統上,在不同的目錄之間復制文件;
scp:是在不同linux系統之間來回復制文件;
二、cp 用法
單個文件復制:
cp 源文件 目標路徑 ~~從原路徑復制源文件到目標路徑下;如果在目標路勁之後加文件名稱和格式意思就是復制過去之後將該文件重命名。
多個文件復制:
cp 源文件1 源文件2 源文件3 ... 目標路徑 ~~從原路徑復制源文件到目標路徑下;
三、cp 的參數詳解
-a 盡可能將源文件狀態、許可權等資料都照原裝予以復制,並且是遞歸;
-r 表示遞歸,若source中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地;
-f 若目的地已經有相同檔名的檔案存在,則在復制前先予以刪除再行復制;
四、scp 的用法
基本語法:scp [參數] 文件 @IP:/目標路徑;如下圖
五、scp參數詳解
-1 強制scp命令使用協議ssh1
-2 強制scp命令使用協議ssh2
-4 強制scp命令只使用IPv4定址
-6 強制scp命令只使用IPv6定址
-B 使用批處理模式(傳輸過程中不詢問傳輸口令或短語)
-C 允許壓縮。(將-C標志傳遞給ssh,從而打開壓縮功能)
-p 保留原文件的修改時間,訪問時間和訪問許可權。
-q 不顯示傳輸進度條。
-r 遞歸復制整個目錄。
-v 詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調試信息。這些信息用於調試連接,驗證和配置問題。
-c cipher 以cipher將數據傳輸進行加密,這個選項將直接傳遞給ssh。
-F ssh_config 指定一個替代的ssh配置文件,此參數直接傳遞給ssh。
-i identity_file 從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。
-l limit 限定用戶所能使用的帶寬,以Kbit/s為單位。
-o ssh_option 如果習慣於使用ssh_config(5)中的參數傳遞方式,
-P port 注意是大寫的P, port是指定數據傳輸用到的埠號
-S program 指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項。
例:scp -r 文件夾 @IP:目標路徑;
2. ssh是什麼主要拿來幹嘛
SSH 為 Secure Shell 的縮寫,由 IETF 的網路工作小組(Network Working Group)所制定;SSH 為建立在應用層和傳輸層基礎上的安全協議。SSH 是目前較可靠,專為遠程登錄會話和其他網路服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。SSH最初是UNIX系統上的一個程序,後來又迅速擴展到其他操作平台。SSH在正確使用時可彌補網路中的漏洞。SSH客戶端適用於多種平台。幾乎所有U NIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台—都可運行SSH。SSH另類應用:用ssh做socks5代理[1]1. 下載MyEntunnel。2.下載PuTTY,解壓到MyEntunnel程序的目錄下。3.運行MyEntunnel.exe,設置:SSH Server里頭填上ssh ftp的地址或IP,填好用戶名和密碼,點Connect,系統欄裡面的小鎖變成綠色就連接成功了。4.設置瀏覽器。IE是不支持socks代理的,用firefox好了,打開firefox的代理設置頁,在socks主機處填上127.0.0.1埠填原先設置的,默認7070。Win主機環境運行SSH命令的方法對於Win主機用戶,可以下載工具putty來進行shell管理。具體的命令依賴於登錄到遠端主機所使用的系統和Shell。一些常用的shell命令如下:cd[目錄名]轉換路徑cd.. 返回上級目錄ls顯示當前目錄下所有文件rm[-r]-f[][文件名]刪除文件,加[-r]可以刪除文件下所有子文件,如rm -rf [abc]刪除abc文件夾及文件夾下的所有文件tar -xzf [解壓下載的壓縮包]unzip[文件名]解壓文件cp -rpf .A/* B 將A文件夾中的所有文件拷貝到其上級目錄B中wget(遠程下載文件到伺服器上)3. VPS使用須知道的SSH命令有哪些
目錄操作:
rm -rf mydir /*刪除mydir目錄,不需要確認,直接刪除*/
mkdir dirname /*創建名為dirname的目錄*/
cd mydir /*進入mydir目錄*/
cd - /*返回進入此目錄之前所在的目錄*/
cd .. /*返回上一級目錄,中間有空格*/
cd ~ /*回當前用戶家目錄*/
mv tools tool /*把tools目錄改名為tool */
ln -s tool bac /*給tool目錄創建名為bac的符號鏈接,最熟悉的應該就是FTP中www鏈接到public_html目錄了*/
cp -a tool /home/vps.zzidc/www /*把tool目錄,復制到www目錄下 */
ls /* 列出當前目錄下的內容 */
文件操作:
rm go.tar /* 刪除go.tar文件 */
find mt.cgi /* 查找文件名為mt.cgi的文件 */
df -h /* 查看磁碟剩餘空間 */
解壓縮:
tar xvf wordpress.tar /* 解壓tar格式的文件 */
tar tvf myfile.tar /* 查看tar文件中包含的文件 */
tar cf toole.tar tool /* 把tool目錄打包為toole.tar文件 */
tar zcf vps.zzidc.tar.gz tool /* 把tool目錄打包且壓縮為vps.zzidc.tar.gz文件,因為.tar文件幾乎是沒有壓縮過的,MT的.tar.gz文件解壓成.tar文件後差不多是10MB */
tar jcvf /var/bak/www.tar.bz2 /var/www/ /*創建.tar.bz2文件,壓縮率高*/
tar xjf www.tar.bz2 /*解壓tar.bz2格式*/
gzip -d ge.tar.gz /* 解壓.tar.gz文件為.tar文件 */
unzip phpbb.zip /* 解壓zip文件,windows下要壓縮出一個.tar.gz格式的文件還是有點麻煩的 */
下載:
wget http://vps.zzidc.com/
/*下載遠程伺服器上的文件到自己的伺服器,連上傳都省了,伺服器不是100M就是1000M的帶寬,下載一個2-3兆的MT還不是幾十秒的事 */
wget -c http://vps.zzidc.com//* 繼續下載上次未下載完的文件 */
進程管理:
ps -aux /*ps 進程狀態查詢命令*/
ps命令輸出欄位的含義:
[list]
[*]USER,進程所有者的用戶名。
[*]PID,進程號,可以唯一標識該進程。
[*]%CPU,進程自最近一次刷新以來所佔用的CPU時間和總時間的百分比。
[*]%MEM,進程使用內存的百分比。
[*]VSZ,進程使用的虛擬內存大小,以K為單位。
[*]RSS,進程佔用的物理內存的總數量,以K為單位。
[*]TTY,進程相關的終端名。
[*]STAT,進程狀態,用(R--運行或准備運行;S--睡眠狀態;I--空閑;Z--凍結;D--不間斷睡眠;W-進程沒有駐留頁;T停止或跟蹤。)這些字母來表示。
[*]START,進程開始運行時間。
[*]TIME,進程使用的總CPU時間。
[*]COMMAND,被執行的命令行。
[/list]
ps -aux | grep nginx /*在所有進程中,查找nginx的進程*/
kill 1234 /*1234為進程ID,即ps -aux 中的PID*/
killall nginx /*killall 通過程序的名字,直接殺死所有進程,nginx為進程名*/
資源佔用查詢:
df -sh /home/wwwroot/* /* 查看/home/wwwroot/下各個目錄的佔用大小 */
free -m /* 查看內存核swap使用情況 */
top /* 查看程序的cpu、內存使用情況 */
netstat -ntl /* 查看埠佔用情況 */
用戶管理:
adser /*添加用戶,如adser vps.zzidc */
deluser /*刪除用戶,如deluser vps.zzidc */
passwd /*修改密碼,按提示輸入密碼,密碼不顯示*/
Vim操作:
移動類的:
h/j/k/l: 左/下/上/右移一格
w : 向後詞移動(前面加數字移動多少個詞)
b : 向前詞移動(前面加數字移動多少個詞)
e : 向後移到詞末
ge : 向前移到詞末
$ <End> : 行末
0 <Home> : 行首
tx : 向右查找本行的x並移到那兒(大寫時向左)
33G : 移到文件的第33行
gg : 文件首行
G : 文件尾行
33% : 文件的33%處
H/M/L : 屏幕的首/中/尾行
zt/zz/zb : 當前行移到屏幕的首/中/底部
跳轉:
" : 回到跳轉來的地方
CTRL-O : 跳到一個 「較老」 的地方
CTRL-I <Tab> : 則跳到一個 「較新」 的地方
查找:
/ : 向下查找(後加關鍵字)
? : 向上查找(後加關鍵字)
n : 下一條符合的記錄
編輯:
i : 轉換到插入模式
x : 刪除當前字元
. : 重復最後一次的修改操作(同PS里ctrl+f執行濾鏡)
u : 撤銷操作
CTRL-R : 重做
p : 將刪除的字元插入到當前位置(put)
退出保存:
:q : 退出
:q! : 不保存退出
ZZ : 保存後退出
:e! : 放棄修改重新編輯
4. ssh的簡介與常用用法
ssh 為 secure shell 的英文縮寫,是一種加密的網路傳輸協議。常用於登錄遠程伺服器與在遠程伺服器上執行命令。
SSH 使用客戶端-伺服器模型,標准埠為 22。伺服器端需要開啟 SSH 守護進程接受遠端的連接,而用戶需要使用 SSH 客戶端與服務端連接。
最常見的開源實現是 OpenSSH
登錄:
在遠程機器上執行 command,把 stdout,stderr 送回來然後斷開連接:
常用參數:
scp 是一個命令行工具,是英文 secure 的縮寫,用於在伺服器和客戶端之間傳輸文件,操作類似cp。
使用注意點:遠程主機名後要加個冒號再跟路徑。如:
SSH 以非對稱加密實現身份驗證。身份驗證有多種途徑,可以使用密碼來認證,也可以通過實現配置好的密鑰文件來認證。
通過密鑰認證登錄的條件:
我們通常使用 ssh-keygen 這個工具來生成公鑰和私鑰,如下:
這會生成兩個文件 ~/.ssh/id_rsa 和 ~/.ssh/id_rsa.pub ,前者是私鑰,我們應該小心保護,後者是公鑰,應當將其放到服務端的 ~/.ssh/authorized_keys 中去,我們可以使用 ssh--id 這個工具來完成:
或者手動將其復制粘貼過去。
也可以使用如下命令:
跳板機,又常叫做「Bastion host」。
在企業中,業務伺服器通常有 ip 限制,不允許直接從辦公機登錄,而是需要先登錄一個跳板機,通過跳板機來登錄業務伺服器。
這樣做的目的是:隔離內部網路,只允許從跳板機訪問,那麼我們只需要特別關注跳板機的安全配置就可以了,便於更好的進行安全控制。
我們可以配置 ssh 客戶端,讓 ssh 替我們處理跳板機的登錄,避免多次輸入命令的負擔。
假設我們有跳板機 jumpserver 和 目標伺服器 targetserver。
方法一、使用命令行的 -J 參數
方法二、配置文件: ~/.ssh/config
然後就可以直接:
sshd 的配置文件: /etc/ssh/sshd_config 。
我們可以修改 sshd 的默認配置來增強系統的安全性,以下是一些需要注意的配置項:
5. linux命令中的cp和scp命令的區別
cp 是普通的文件復制 scp 是通過ssh 本機和其他電腦上的復制 cp a.txt b.txt 把 a.txt 復制為 b.txt scp a.txt [email protected]:/home/xxx 把 a.txt 賦值到區域網 ip 為 192.168.110.110 的機器/home/xxx 目錄
6. putty在伺服器中的cp命令怎麼用
Win主機環境運行SSH命令的方法 對於Win主機用戶,可以下載工具putty來進行shell管理。具體的命令依賴於登錄到遠端主機所使用的系統和Shell。 一些常用的shell命令如下: cd[目錄名]轉換路徑 cd.. 返回上級目錄 ls顯示當前目錄下所有文件 rm[-r]-f[][文件名]刪除文件,加[-r]可以刪除文件下所有子文件,如rm -rf [abc]刪除abc文件夾及文件夾下的所有文件 tar -xzf [解壓下載的壓縮包] unzip[文件名]解壓文件 cp -rpf .A/* B 將A文件夾中的所有文件拷貝到其上級目錄B中 wget(遠程下載文件到伺服器上)
7. 如何使用cp命令從windows拷貝文件到linux
一、將本機文件復制到遠程伺服器上
#scp /home/administrator/news.txt [email protected]:/etc/squid
/home/administrator/ 本地文件的絕對路徑
news.txt 要復制到伺服器上的本地文件
root 通過root用戶登錄到遠程伺服器(也可以使用其他擁有同等許可權的用戶)
192.168.6.129 遠程伺服器的ip地址(也可以使用域名或機器名)
/etc/squid 將本地文件復制到位於遠程伺服器上的路徑
如圖通過root用戶登錄遠程伺服器,輸入yes表示同意建立ssh連接
按提示輸入root用戶的密碼
二、將遠程伺服器上的文件復制到本機
#scp [email protected]:/usr/local/sin.sh /home/administrator
remote 通過remote用戶登錄到遠程伺服器(也可以使用其他擁有同等許可權的用戶)
www.abc.com 遠程伺服器的域名(當然也可以使用該伺服器ip地址)
/usr/local/sin.sh 欲復制到本機的位於遠程伺服器上的文件
/home/administrator 將遠程文件復制到本地的絕對路徑
注意兩點:
1.如果遠程伺服器防火牆有特殊限制,scp便要走特殊埠,具體用什麼埠視情況而定,命令格式如下:
#scp -p 4588 [email protected]:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用戶是否具有可讀取遠程伺服器相應文件的許可權。
但是,運行SCP命令有一個前提,就是要安裝SSH。我的遠程主機是window系統,windows系統默認是沒有安裝SSH的,所以,如果要像我這樣從windows主機拷貝文件到Linux,前提是windows安裝了SSH,否則,當你運行SSH命令嘗試鏈接的時候,會提示「Connection refused」。我在網上google了一下,有很多免費的SSH軟體,最後發現Cygwin + OpenSSH實現起來比較簡單,至於Cygwin + OpenSSH的安裝方法,大家可以上網google一下,當一切前期准備都做好之後,就可以嘗試運行SCP命令,還有一點需要注意的地方就是,鏈接遠程主機的用戶名是分大小寫的。
8. 如何在ubuntu中啟用SSH服務 03 Hacklog
一般是選擇安裝OpenSSH server 。
不廢話,直接安裝:
1
sudo apt-get install openssh-server
查看SSH server正在工作與否:
1
2
ubuntu$ ps -aef | grep sshd
root 24114 1 0 15:18 ? 00:00:00 /usr/sbin/sshd
好,現在連接一下本地的SSH伺服器看:
1
ubuntu$ ssh localhost
然後會問你是否繼續,輸入yes即可。
用你本地的賬號和密碼登錄看下。
如果登錄成功,OK,WELL DONE !
修改配置文件:
修改前先備份原始配置文件是個好習慣:
1
2
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
chmod a-w /etc/ssh/sshd_config.orig
1
vim /etc/ssh/sshd_config
配置SSH
配置客戶端的軟體
OpenSSH有三種配置方式:命令行參數、用戶配置文件和系統級的配置文件(「/etc/ssh/ssh_config」)。命令行參數優先於配置文
件,用戶配置文件優先於系統配置文件。所有的命令行的參數都能在配置文件中設置。因為在安裝的時候沒有默認的用戶配置文件,所以要把「/etc/ssh
/ssh_config」拷貝並重新命名為「~/.ssh/config」。
標準的配置文件大概是這樣的:
[lots of explanations and possible options listed]
1
2
3
4
5
# Be paranoid by default
Host *
ForwardAgent no
ForwardX11 no
FallBackToRsh no
還有很多選項的設置可以用「man ssh」查看「CONFIGURATION FILES」這一章。
配置文件是按順序讀取的。先設置的選項先生效。
假定你在www.foobar.com上有一個名為「bilbo」的帳號。而且你要把「ssh-agent」和「ssh-add」結合起來使用並且使用數
據壓縮來加快傳輸速度。因為主機名太長了,你懶得輸入這么長的名字,用「fbc」作為「www.foobar.com」的簡稱。你的配置文件可以是這樣
的:
1
2
3
4
5
6
7
8
9
10
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會自動地從配置文件中找到主機的全名,用你的用戶名登錄並且用「ssh-agent」管理的密匙進行安全驗證。這樣很方便吧!
用SSH連接到其它遠程計算機用的還是「paranoid(偏執)」默認設置。如果有些選項沒有在配置文件或命令行中設置,那麼還是使用默認的「paranoid」設置。
在我們上面舉的那個例子中,對於到www.foobar.com的SSH連接:「ForwardAgent」和「Compression」被設置為
「Yes」;其它的設置選項(如果沒有用命令行參數)「ForwardX11」和「FallBackToRsh」都被設置成「No」。
其它還有一些需要仔細看一看的設置選項是:
l CheckHostIP yes
這個選項用來進行IP地址的檢查以防止DNS欺騙。
l CompressionLevel
壓縮的級別從「1」(最快)到「9」(壓縮率最高)。默認值為「6」。
l ForwardX11 yes
為了在本地運行遠程的X程序必須設置這個選項。
l LogLevel DEBUG
當SSH出現問題的時候,這選項就很有用了。默認值為「INFO」。
配置服務端的軟體
SSH伺服器的配置使用的是「/etc/ssh/sshd_config」配置文件,這些選項的設置在配置文件中已經有了一些說明而且用「man sshd」也可以查看幫助。請注意OpenSSH對於SSH 1.x和2.x沒有不同的配置文件。
在默認的設置選項中需要注意的有:
l PermitRootLogin yes
最好把這個選項設置成「
PermitRootLogin without-password
」,這樣「root」用戶就不能從沒有密匙的計算機上登錄。把這個選項設置成「no」將禁止「root」用戶登錄,只能用「su」命令從普通用戶轉成「root」。
l X11Forwarding no
把這個選項設置成「yes」允許用戶運行遠程主機上的X程序。就算禁止這個選項也不能提高伺服器的安全因為用戶可以安裝他們自己的轉發器(forwarder),請參看「man sshd」。
l PasswordAuthentication yes
把這個選項設置為「no」只允許用戶用基於密匙的方式登錄。這當然會給那些經常需要從不同主機登錄的用戶帶來麻煩,但是這能夠在很大程度上提高系統的安全性。基於口令的登錄方式有很大的弱點。
l # Subsystem /usr/local/sbin/sftpd
把最前面的#號去掉並且把路徑名設置成「/usr/bin/sftpserv」,用戶就能使用「sftp」(安全的FTP)了(sftpserv在
sftp軟體包中)。因為很多用戶對FTP比較熟悉而且「scp」用起來也有一些麻煩,所以「sftp」還是很有用的。而且2.0.7版本以後的圖形化的
ftp工具「gftp」也支持「sftp」。
拷貝文件
用「scp」拷貝文件
SSH提供了一些命令和shell用來登錄遠程伺服器。在默認情況下它不允許你拷貝文件,但是還是提供了一個「scp」命令。
假定你想把本地計算機當前目錄下的一個名為「mb」的文件拷貝到遠程伺服器www.foobar.com上你的家目錄下。而且你在遠程伺服器上的帳號名為「bilbo」。可以用這個命令:
1
scp mb [email protected]:.
把文件拷貝回來用這個命令:
1
scp [email protected]:mb .
「scp」調用SSH進行登錄,然後拷貝文件,最後調用SSH關閉這個連接。
如果在你的「~/.ssh/config」文件中已經為www.foobar.com做了這樣的配置:
1
2
3
4
Host *fbc
HostName www.foobar.com
User bilbo
ForwardAgent yes
那麼你就可以用「fbc」來代替「[email protected]」,命令就簡化為「scp mb fbc:.」。
「scp」假定你在遠程主機上的家目錄為你的工作目錄。如果你使用相對目錄就要相對於家目錄。
用「scp」命令的「-r」參數允許遞歸地拷貝目錄。「scp」也可以在兩個不同的遠程主機之間拷貝文件。
有時候你可能會試圖作這樣的事:用SSH登錄到www.foobar.com上之後,輸入命令「scp [local machine]:mb .」想用它把本地的「mb」文件拷貝到你當前登錄的遠程伺服器上。這時候你會看到下面的出錯信息:
ssh: secure connection to [local machine] refused
之所以會出現這樣的出錯信息是因為你運行的是遠程的「scp」命令,它試圖登錄到在你本地計算機上運行的SSH服務程序……所以最好在本地運行「scp」除非你的本地計算機也運行SSH服務程序。
用「sftp」拷貝文件
如果你習慣使用ftp的方式拷貝文件,可以試著用「sftp」。「sftp」建立用SSH加密的安全的FTP連接通道,允許使用標準的ftp命令。還有一
個好處就是「sftp」允許你通過「exec」命令運行遠程的程序。從2.0.7版以後,圖形化的ftp客戶軟體「gftp」就支持「sftp」。
如果遠程的伺服器沒有安裝sftp伺服器軟體「sftpserv」,可以把「sftpserv」的可執行文件拷貝到你的遠程的家目錄中(或者在遠程計算機
的$PATH環境變數中設置的路徑)。「sftp」會自動激活這個服務軟體,你沒有必要在遠程伺服器上有什麼特殊的許可權。
用「rsync」拷貝文件
「rsync」是用來拷貝、更新和移動遠程和本地文件的一個有用的工具,很容易就可以用「-e
ssh」參數和SSH結合起來使用。「rsync」的一個優點就是,不會拷貝全部的文件,只會拷貝本地目錄和遠程目錄中有區別的文件。而且它還使用很高效
的壓縮演算法,這樣拷貝的速度就很快。
用「加密通道」的ftp拷貝文件
如果你堅持要用傳統的FTP客戶軟體。SSH可以為幾乎所有的協議提供「安全通道」。FTP是一個有一點奇怪的協議(例如需要兩個埠)而且不同的服務程序和服務程序之間、客戶程序和客戶程序之間還有一些差別。
實現「加密通道」的方法是使用「埠轉發」。你可以把一個沒有用到的本地埠(通常大於1000)設置成轉發到一個遠程伺服器上,然後只要連接本地計算機上的這個埠就行了。有一點復雜是嗎?
其實一個基本的想法就是,轉發一個埠,讓SSH在後台運行,用下面的命令:
1
ssh [user@remote host] -f -L 1234:[remote host]:21 tail -f /etc/motd
接著運行FTP客戶,把它設置到指定的埠:
1
ftp -u [username] -p 1234 localhost
當然,用這種方法很麻煩而且很容易出錯。所以最好使用前三種方法。
用SSH設置「加密通道」
「加密通道」的基礎知識
SSH的「加密通道」是通過「埠轉發」來實現的。你可以在本地埠(沒有用到的)和在遠程伺服器上運行的某個服務的埠之間建立「加密通道」。然後只要
連接到本地埠。所有對本地埠的請求都被SSH加密並且轉發到遠程伺服器的埠。當然只有遠程伺服器上運行SSH伺服器軟體的時候「加密通道」才能工
作。可以用下面命令檢查一些遠程伺服器是否運行SSH服務:
telnet [full name of remote host] 22
如果收到這樣的出錯信息:
telnet: Unable to connect to remote host: Connection refused
就說明遠程伺服器上沒有運行SSH服務軟體。
埠轉發使用這樣的命令語法:
ssh -f [username@remote host] -L [local port]:[full name of remote host]:[remote port] [some command]
你不僅可以轉發多個埠而且可以在「~/.ssh/config」文件中用「LocalForward」設置經常使用的一些轉發埠。
為POP加上「加密通道」
你可以用POP協議從伺服器上取email。為POP加上「加密通道」可以防止POP的密碼被網路監聽器(sniffer)監聽到。還有一個好處就是SSH的壓縮方式可以讓郵件傳輸得更快。
假定你在pop.foobar.com上有一個POP帳號,你的用戶名是「bilbo」你的POP口令是「topsecret」。用來建立SSH「加密通道」的命令是:
ssh -f -C [email protected] -L 1234:pop.foobar.com:110 sleep 5
(如果要測試,可以把「sleep」的值加到500)。運行這個命令之後會提示你輸入POP口令:
[email protected]『s password:
輸入口令之後就可以用「telnet」連接到本地的轉發埠了。
telnet localhost 1234
你會收到遠程mail伺服器的「READY」消息。
當然,這個方法要求你手工輸入所有的POP命令,這是很不方便的。可以用Fetchmail(參考how to configure
Fetchmail)。Secure POP via SSH mini-HOWTO、man
fetchmail和在「/usr/doc/fetchmail-[…]」目錄下的Fetchmail的FAQ都提供了一些具體的例子。
請注意IMAP協議使用的是不同的埠:IMAP v2的埠號為143而IMAP v3的埠號為220。
為X加上「加密通道」
如果你打算在本地計算機上運行遠程SSH伺服器上的X程序,那麼登錄到遠程的計算機上,創建一個名為「~/.ssh/environment」的文件並加上這一行:
XAUTHORITY=/home/[remote user name]/.Xauthority
(如果在遠程主機上你的家目錄下不存在「.Xauthority」這個文件,那麼當用SSH登錄的時候就會自動創建)。
比如啟動一個X程序(xterm)可以這個命令:
ssh -f -X -l [remote user name] [remote machine] xterm
這將在遠程運行xterm這個程序。其它的X程序也是用相同的方法。
為linuxconf加上「加密通道」
Linuxconf是Linux的配置工具,它支持遠程管理。Linuxconf的FAQ重說明了如何通過SSH使用linuxconf:
其命令為:
remadmin –exec [link_command] linuxconf –guiproto
如果你想在兩台計算機之間用加密的方式傳送信息,那麼最好用ssh。命令是:
remadmin –exec ssh -l [account] linuxconf –guiproto
這是非常有效的而且運行用圖形界面管理計算機。
這種方法需要在客戶端安裝linuxconf。其它的方法還有直接登錄到伺服器上用「X11Forwarding」或字元界面運行linuxconf。
為Webmin加上「加密通道」
Webmin是一個新的基於瀏覽器的配置工具。它運行在1000埠。你可以用SSH的「埠轉發」對它進行加密:
1
ssh -f -l [remote user name] [remote host] -L 1234:[remote host]:10000 tail -f /etc/motd
把瀏覽器指向 http://localhost:1234
修改完後記得重啟SSH服務:
1
sudo /etc/init.d/ssh restart
SSH Keys
SSH密鑰允許你不需要輸入密碼就可以登錄主機。
產生密鑰,在自己機子上:
1
ssh-keygen -t dsa
這樣為會用戶創建一個DSA加密的身份標識。期間你會被要求輸入密碼,如何不想輸入密碼,可以直接按Enter。
現在你有一對密匙了:公用密匙要分發到所有你想用ssh登錄的遠程主機上去;私人密匙要好好地保管防止別人知道你的私人密匙。用「ls –l ~/.ssh/identity」或「ls –l ~/.ssh/id_dsa」所顯示的文件的訪問許可權必須是「-rw——-」。
默認情況下,公鑰會保存在文件 ~/.ssh/id_dsa.pub ,私鑰保存在~/.ssh/id_dsa 。把公鑰COPY到遠程主機並且附加到
~/.ssh/authorized_keys通過鍵入以下命令:
1
ssh--id username@remotehost
最後 ,仔細檢查 authorized_keys 文件的許可權,確保只有通過身份驗證的用戶才有讀寫許可權。如果不是,通過以下命令修改下許可權:
1
chmod 600 .ssh/authorized_keys
如果除了你之外別人對「authorized_keys」文件也有寫的許可權,SSH就不會工作。
現在你應該可以連接到SSH伺服器而不用輸入密碼了。
如果你想從不同的計算機登錄到遠程主機,「authorized_keys」文件也可以有多個公用密匙。在這種情況下,必須在新的計算機上重新生成
一對密匙,然後把生成的「identify.pub」文件拷貝並粘貼到遠程主機的「authorized_keys」文件里。當然在新的計算機上你必須有
一個帳號,而且密匙是用口令保護的。有一點很重要,就是當你取消了這個帳號之後,別忘了把這一對密匙刪掉。
9. linux scp是ssh命令嗎
ssh是主機遠程登錄命令
scp有點像cp命令,只不過scp是遠程,主機之間的傳輸命令