SSH:
1朋截、查看SSH客戶端版本
有的時(shí)候需要確認(rèn)一下SSH客戶端及其相應(yīng)的版本號(hào)晴股。使用ssh -V命令可以得到版本號(hào)羽峰。恃慧,Linux一般自帶的是OpenSSH: 下面的例子即表明該系統(tǒng)正在使用OpenSSH:
$ ssh -V
OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003
下面的例子表明該系統(tǒng)正在使用SSH2:
$ ssh -V
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu
2园蝠、連接到遠(yuǎn)程主機(jī):
命令格式 :
ssh name@remoteserver 或者
ssh remoteserver -l name
說明:以上兩種方式都可以遠(yuǎn)程登錄到遠(yuǎn)程主機(jī),server代表遠(yuǎn)程主機(jī)痢士,name為登錄遠(yuǎn)程主機(jī)的用戶名彪薛。
3、連接到遠(yuǎn)程主機(jī)指定的端口:
命令格式:
ssh name@remoteserver -p 2222 或者
ssh remoteserver -l name -p 2222
說明:p 參數(shù)指定端口號(hào)怠蹂,通常在路由里做端口映射時(shí)善延,我們不會(huì)把22端口直接映射出去,而是轉(zhuǎn)換成其他端口號(hào)褥蚯,這時(shí)就需要使用-p端口號(hào)命令格式挚冤。
SSH 是什么
SSH(全稱 Secure Shell)是一種加密的網(wǎng)絡(luò)協(xié)議。使用該協(xié)議的數(shù)據(jù)將被加密赞庶,如果在傳輸中間數(shù)據(jù)泄漏训挡,也可以確保沒有人能讀取出有用信息。要使用 SSH歧强,目標(biāo)機(jī)器應(yīng)該安裝 SSH 服務(wù)端應(yīng)用程序澜薄,因?yàn)?SSH 是基于客戶-服務(wù)模式的。 當(dāng)你想安全的遠(yuǎn)程連接到主機(jī)摊册,可中間的網(wǎng)絡(luò)(比如因特網(wǎng))并不安全肤京,通常這種情況下就會(huì)使用 SSH。
安裝 SSH
如果碰巧你的機(jī)器沒裝茅特,我們可以手工來安裝一下忘分。最簡(jiǎn)單的方式就是使用 Linux 包管理器。
基于 Debian / Ubuntu 的系統(tǒng) :
安裝 ssh-client
$ sudo apt-get install openssh-client
安裝 ssh-server
$ sudo apt-get install openssh-server
基于 RedHat / CentOS 的系統(tǒng) :
yum install openssh-server openssh-clients
SSH 一旦安裝上白修,我們就可以在終端下輸入 ssh 來檢查下安裝的是否正常妒峦。
使用 SSH
提供了許多可使用的選項(xiàng)。這篇文章會(huì)介紹一些我們?cè)谌粘2僮髦薪?jīng)常使用的選項(xiàng)兵睛。
-
無選項(xiàng)參數(shù)運(yùn)行 SSH
通常使用 SSH 的方式就是不加任何選項(xiàng)參數(shù),僅僅輸入 "ssh"肯骇。下面是示例:
$ ssh 192.168.0.103
第一次連接目標(biāo)主機(jī)時(shí)窥浪,ssh 會(huì)讓你確認(rèn)目標(biāo)主機(jī)的真實(shí)性。如果你回答的是 NO笛丙,SSH 將不會(huì)繼續(xù)連接漾脂,只有回答 Yes才會(huì)繼續(xù)。
下一次再登陸此主機(jī)時(shí)胚鸯,SSH 就不會(huì)提示確認(rèn)消息了骨稿。對(duì)此主機(jī)的真實(shí)驗(yàn)證信息已經(jīng)默認(rèn)保存在每個(gè)用戶的 /home/user/.ssh 文件里。 -
指定登陸用戶
默認(rèn)的蠢琳,ssh 會(huì)嘗試用當(dāng)前用戶作為用戶名來連接啊终。在上面的示例命令中,ssh 會(huì)嘗試用用戶名叫 pungki 的用戶身份來登入服務(wù)器傲须,這是因?yàn)橛脩?pungki 正在客戶機(jī)上使用 ssh 客戶端軟件。
假如目標(biāo)主機(jī)上沒有叫 pungki 的用戶呢趟脂?這時(shí)你就必須提供一個(gè)目標(biāo)主機(jī)上存在的用戶名泰讽。從一開始就要指定用戶名的,可以使用 -l 選項(xiàng)參數(shù)昔期。
$ ssh -l leni 192.168.0.103
我們也可以這樣輸入:
$ ssh leni@192.168.0.0103
- 指定端口
SSH 默認(rèn)使用的端口號(hào)是 22已卸。大多現(xiàn)代的 Linux 系統(tǒng) 22 端口都是開放的。如果你運(yùn)行 ssh 程序而沒有指定端口號(hào)硼一,它直接就是通過 22 端口發(fā)送請(qǐng)求的累澡。
一些系統(tǒng)管理員會(huì)改變 SSH 的默認(rèn)端口號(hào)。讓我們?cè)囋嚢阍簦F(xiàn)在端口號(hào)是 1234.要連上那主機(jī)愧哟,就要使用 *-p 選項(xiàng),后面在加上 SSH 端口號(hào)哼蛆。
$ ssh 192.168.0.103 -p 1234
要改變端口號(hào)蕊梧,我們需要修改 /etc/ssh/ssh_config 文件,找到此行:
Port 22
把它換成其他的端口號(hào)腮介,比如上面示例的 1234 端口肥矢,然后重啟 SSH 服務(wù)。
4.對(duì)所有數(shù)據(jù)請(qǐng)求壓縮
有了這個(gè)選項(xiàng)叠洗,所有通過 SSH 發(fā)送或接收的數(shù)據(jù)將會(huì)被壓縮甘改,并且任然是加密的。要使用 SSH 的壓縮功能灭抑,使用 -C 選項(xiàng)十艾。
$ ssh -C 192.168.0.103
如果你的連網(wǎng)速度很慢的話,比如用 modem 上網(wǎng)名挥,這個(gè)選項(xiàng)非常有用疟羹。但如果你使用的是像 LAN 或其它更高級(jí)網(wǎng)絡(luò)的話主守,壓縮反而會(huì)降低你的傳輸速度¢冢可以使用 -o 選項(xiàng)加上壓縮級(jí)別參數(shù)來控制壓縮的級(jí)別参淫,但這個(gè)選項(xiàng)僅僅只在 SSH-1 下起作用。 -
指定一個(gè)加密算法
SSH 提供了一些可用的加密算法愧杯∠巡牛可以在 */etc/ssh/ssh_config or ~/.ssh/config * 文件中看到(如果存在的話)。
讓我們?cè)囋嚤热缒阆胧褂?blowfish 算法來加密你的 SSH 會(huì)話力九,那么你只要把這一行加入你的/etc/ssh/ssh_config or ~/.ssh/config 文件就可以:
Cipher blowfish
默認(rèn)的耍铜,SSH 會(huì)使用 3des 算法。 -
打開調(diào)試模式
因?yàn)槟承┰虻埃覀兿胍粉櫿{(diào)試我們建立的 SSH 連接情況棕兼。SSH 提供的 -v 選項(xiàng)參數(shù)正是為此而設(shè)的。
$ ssh -v 192.168.0.103
-
綁定源地址
如果你的客戶端有多于兩個(gè)以上的 IP 地址抵乓,你就不可能分得清楚在使用哪一個(gè) IP 連接到 SSH 服務(wù)器伴挚。
為了解決這種情況,我們可以使用 -b 選項(xiàng)來指定一個(gè)IP 地址灾炭。這個(gè) IP 將會(huì)被使用做建立連接的源地址茎芋。
$ ssh -b 192.168.0.200 -l leni 192.168.0.103
服務(wù)端,我們可以使用 netstat 命令來檢查到服務(wù)的連接是否建立蜈出√锩郑可以看到 IP 為 192.168.0.200 的連接已經(jīng)建立。
-
使用其他配置文件
默認(rèn)情況下铡原,ssh 會(huì)使用位于 /etc/ssh/ssh_config 的配置文件偷厦。這個(gè)配置文件作用于系統(tǒng)的所有用戶。但你想要為特定的用戶指定特殊的設(shè)置的話眷蜈,可以把配置放入 ~/.ssh/config 文件中沪哺。如果此文件不存在,可以手工創(chuàng)建一個(gè)酌儒。
下面是一個(gè)通用 ssh_config 文件配置的例子辜妓。這配置文件位于 /home/pungki 目錄下。
Host 192.168.0.*ForwardX11 yesPasswordAuthentication yesConnectTimeout 10Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbcProtocol 2HashKnownHosts yes
要使用指定的配置文件忌怎,可以使用 -F 選項(xiàng)籍滴。
$ ssh -F /home/pungki/my_ssh_config 192.168.0.101
-
使用 SSH X11 Forwarding
某些時(shí)候,你可能想把服務(wù)端的 X11 應(yīng)用程序顯示到客戶端計(jì)算機(jī)上榴啸,SSH 提供了 -X 選項(xiàng)孽惰。但要啟用這功能,我們需要做些準(zhǔn)備鸥印,下面是它的設(shè)置:
在服務(wù)器端勋功,你需要使 /etc/ssh/ssh_config 文件中的行設(shè)置成 ForwardX11 yes 或者 X11Forwad yes坦报,以啟用 X11 Forwarding,重啟 SSH 服務(wù)程序狂鞋。
然后在客戶端片择,輸入 ssh -X user@host:
$ ssh -X leni@192.168.0.101
一旦登陸,可以輸入:
$ echo $DISPLAY
來檢查骚揍,你應(yīng)該可以看到向如下所示的
localhost:10:0
隨后就可以運(yùn)行應(yīng)用了字管,僅僅只能輸入應(yīng)用程序的命令。讓我們?cè)囋囆挪唬热缦脒\(yùn)行 xclock 程序嘲叔,輸入:
$ xclock
它就運(yùn)行起來了,xclock 確實(shí)是運(yùn)行在遠(yuǎn)端系統(tǒng)的抽活,但它在你的本地系統(tǒng)里顯示了硫戈。