系統(tǒng)管理員需知:10個(gè) SSH 簡(jiǎn)單命令選項(xiàng)
一個(gè)系統(tǒng)管理員可能會(huì)同時(shí)管理著多臺(tái)服務(wù)器,這些服務(wù)器也許會(huì)放在不同的地方。要親自一臺(tái)一臺(tái)的去訪問(wèn)來(lái)管理它們顯然不是最好的方法,通過(guò)遠(yuǎn)程控制的方法應(yīng)該是最有效的。遠(yuǎn)程訪問(wèn)最通用的一款應(yīng)用程序就是 SSH(什么?你還用telnet?....$%@%&W@$##)。
SSH 是什么
SSH(全稱 Secure Shell)是一種加密的網(wǎng)絡(luò)協(xié)議。使用該協(xié)議的數(shù)據(jù)將被加密,如果在傳輸中間數(shù)據(jù)泄漏,也可以確保沒(méi)有人能讀取出有用信息。要使用 SSH,目標(biāo)機(jī)器應(yīng)該安裝 SSH 服務(wù)端應(yīng)用程序,因?yàn)?nbsp;SSH 是基于客戶-服務(wù)模式的。 當(dāng)你想安全的遠(yuǎn)程連接到主機(jī),可中間的網(wǎng)絡(luò)(比如因特網(wǎng))并不安全,通常這種情況下就會(huì)使用 SSH。
安裝 SSH
的 Linux 系統(tǒng)默認(rèn)已經(jīng)安裝了 SSH。如果碰巧你的機(jī)器沒(méi)裝(譯注:我能吐槽么?沒(méi)有不裝ssh的Linux服務(wù)器吧,不過(guò),大家要記得升級(jí)你的ssh服務(wù)器),我們可以手工來(lái)安裝一下。最簡(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 來(lái)檢查下安裝的是否正常。
使用 SSH
提供了許多可使用的選項(xiàng)。這篇文章會(huì)介紹一些我們?cè)谌粘2僮髦薪?jīng)常使用的選項(xiàng)。
1. 無(wú)選項(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ù)(譯注:會(huì)加入RSA key的指紋作為記錄,如果下次連接發(fā)現(xiàn)指紋變化,會(huì)提示你)。
下一次再登陸此主機(jī)時(shí),SSH 就不會(huì)提示確認(rèn)消息了。對(duì)此主機(jī)的真實(shí)驗(yàn)證信息已經(jīng)默認(rèn)保存在每個(gè)用戶的 /home/user/.ssh 文件里。
2. 指定登陸用戶
默認(rèn)的,ssh 會(huì)嘗試用當(dāng)前用戶作為用戶名來(lái)連接。在上面的示例命令中,ssh 會(huì)嘗試用用戶名叫 pungki 的用戶身份來(lái)登入服務(wù)器,這是因?yàn)橛脩?pungki 正在客戶機(jī)上使用 ssh 客戶端軟件。
假如目標(biāo)主機(jī)上沒(méi)有叫 pungki 的用戶呢?這時(shí)你就必須提供一個(gè)目標(biāo)主機(jī)上存在的用戶名。從一開(kāi)始就要指定用戶名的,可以使用 -l 選項(xiàng)參數(shù)。
- $ ssh -l leni 192.168.0.103
我們也可以這樣輸入:
- $ ssh leni@192.168.0.0103
3. 指定端口
SSH 默認(rèn)使用的端口號(hào)是 22。大多現(xiàn)代的 Linux 系統(tǒng) 22 端口都是開(kāi)放的。如果你運(yùn)行 ssh 程序而沒(méi)有指定端口號(hào),它直接就是通過(guò) 22 端口發(fā)送請(qǐng)求的。
一些系統(tǒng)管理員會(huì)改變 SSH 的默認(rèn)端口號(hào)。讓我們?cè)囋?,現(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),所有通過(guò) 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ù)來(lái)控制壓縮的級(jí)別,但這個(gè)選項(xiàng)僅僅只在 SSH-1 下起作用。
5. 指定一個(gè)加密算法
SSH 提供了一些可用的加密算法??梢栽?*/etc/ssh/ssh_config or ~/.ssh/config * 文件中看到(如果存在的話)。
讓我們?cè)囋嚤热缒阆胧褂?nbsp;blowfish 算法來(lái)加密你的 SSH 會(huì)話,那么你只要把這一行加入你的 /etc/ssh/ssh_config or ~/.ssh/config 文件就可以:
- Cipher blowfish
默認(rèn)的,SSH 會(huì)使用 3des 算法。
6. 打開(kāi)調(diào)試模式
因?yàn)槟承┰?,我們想要追蹤調(diào)試我們建立的 SSH 連接情況。SSH 提供的 -v 選項(xiàng)參數(shù)正是為此而設(shè)的。
- $ ssh -v 192.168.0.103
7. 綁定源地址
如果你的客戶端有多于兩個(gè)以上的 IP 地址,你就不可能分得清楚在使用哪一個(gè) IP 連接到 SSH 服務(wù)器。
為了解決這種情況,我們可以使用 -b 選項(xiàng)來(lái)指定一個(gè)IP 地址。這個(gè) IP 將會(huì)被使用做建立連接的源地址。
- $ ssh -b 192.168.0.200 -l leni 192.168.0.103
服務(wù)端,我們可以使用 netstat 命令來(lái)檢查到服務(wù)的連接是否建立??梢钥吹?IP 為 192.168.0.200 的連接已經(jīng)建立。
8. 使用其他配置文件
默認(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 yes
- PasswordAuthentication yes
- ConnectTimeout 10
- Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
- Protocol 2
- HashKnownHosts yes
要使用指定的配置文件,可以使用 -F 選項(xiàng)。
- $ ssh -F /home/pungki/my_ssh_config 192.168.0.101
9. 使用 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
來(lái)檢查,你應(yīng)該可以看到向如下所示的:
- localhost:10:0
隨后就可以運(yùn)行應(yīng)用了,僅僅只能輸入應(yīng)用程序的命令。讓我們?cè)囋嚕热缦脒\(yùn)行 xclock 程序,輸入:
- $ xclock
它就運(yùn)行起來(lái)了,xclock 確實(shí)是運(yùn)行在遠(yuǎn)端系統(tǒng)的,但它在你的本地系統(tǒng)里顯示了。
10. 可信任的 X11 轉(zhuǎn)發(fā)
如果你敢肯定你的網(wǎng)絡(luò)是安全的,那么你可以使用可信任的 X11 轉(zhuǎn)發(fā)機(jī)制。這意味著遠(yuǎn)程的 X11 客戶端可以完全的訪問(wèn)源 X11 顯示內(nèi)容。要使用此功能,可以使用 -Y 選項(xiàng)。
- $ ssh -Y leni@192.168.0.101
結(jié)論
我們相信 SSH 的使用范圍非常之廣。SSH 給用戶提供了網(wǎng)絡(luò)連接的極大安全性和靈活性。通常我們都會(huì)輸入 man ssh 和 man ssh_config 來(lái)顯示它的用戶手冊(cè)及查看更多的細(xì)節(jié)。
(譯注補(bǔ)充:建議使用ssh的協(xié)議版本2,因此請(qǐng)修改 ssh_config 文件的 Protocol 字段為:2,而將對(duì)協(xié)議1的支持取消。)
via: http://linoxide.com/linux-command/learn-ssh-connection-options/
譯者:runningwater 校對(duì):wxy