SSH命令行

一、SSH 是什么

SSH(全稱 Secure Shell)是一種加密的網(wǎng)絡(luò)協(xié)議。使用該協(xié)議的數(shù)據(jù)將被加密,如果在傳輸中間數(shù)據(jù)泄漏,也可以確保沒有人能讀取出有用信息。要使用SSH,目標機器應(yīng)該安裝 SSH 服務(wù)端應(yīng)用程序,因為?SSH是基于客戶-服務(wù)模式的。?當你想安全的遠程連接到主機,可中間的網(wǎng)絡(luò)(比如因特網(wǎng))并不安全,通常這種情況下就會使用 SSH。

二、安裝 SSH

如果碰巧你的機器沒裝,我們可以手工來安裝一下。最簡單的方式就是使用 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

提供了許多可使用的選項。這篇文章會介紹一些我們在日常操作中經(jīng)常使用的選項。

1. 無選項參數(shù)運行 SSH

通常使用 SSH 的方式就是不加任何選項參數(shù),僅僅輸入 "ssh"。下面是示例:

$ ssh 192.168.0.103

第一次連接目標主機時,ssh 會讓你確認目標主機的真實性。如果你回答的是?NO,SSH 將不會繼續(xù)連接,只有回答?Yes才會繼續(xù)。

下一次再登陸此主機時,SSH 就不會提示確認消息了。對此主機的真實驗證信息已經(jīng)默認保存在每個用戶的 /home/user/.ssh 文件里。

2. 指定登陸用戶

默認的,ssh 會嘗試用當前用戶作為用戶名來連接。在上面的示例命令中,ssh 會嘗試用用戶名叫 pungki 的用戶身份來登入服務(wù)器,這是因為用戶 pungki 正在客戶機上使用 ssh 客戶端軟件。

假如目標主機上沒有叫 pungki 的用戶呢?這時你就必須提供一個目標主機上存在的用戶名。從一開始就要指定用戶名的,可以使用 -l 選項參數(shù)。

$ ssh -l leni 192.168.0.103

我們也可以這樣輸入:

$ ssh leni@192.168.0.0103

3. 指定端口

SSH 默認使用的端口號是 22。大多現(xiàn)代的 Linux 系統(tǒng) 22 端口都是開放的。如果你運行 ssh 程序而沒有指定端口號,它直接就是通過 22 端口發(fā)送請求的。

一些系統(tǒng)管理員會改變 SSH 的默認端口號。讓我們試試,現(xiàn)在端口號是 1234.要連上那主機,就要使用?**-p* 選項,后面在加上 SSH 端口號。

$ ssh 192.168.0.103 -p 1234

要改變端口號,我們需要修改?/etc/ssh/ssh_config?文件,找到此行:

Port 22

把它換成其他的端口號,比如上面示例的 1234 端口,然后重啟 SSH 服務(wù)。

4.對所有數(shù)據(jù)請求壓縮

有了這個選項,所有通過 SSH 發(fā)送或接收的數(shù)據(jù)將會被壓縮,并且任然是加密的。要使用 SSH 的壓縮功能,使用?-C?選項。

$ ssh -C 192.168.0.103

如果你的連網(wǎng)速度很慢的話,比如用 modem 上網(wǎng),這個選項非常有用。但如果你使用的是像 LAN 或其它更高級網(wǎng)絡(luò)的話,壓縮反而會降低你的傳輸速度??梢允褂?-o?選項加上壓縮級別參數(shù)來控制壓縮的級別,但這個選項僅僅只在 SSH-1 下起作用。

5. 指定一個加密算法

SSH 提供了一些可用的加密算法??梢栽?*/etc/ssh/ssh_config or ~/.ssh/config *?文件中看到(如果存在的話)。

讓我們試試比如你想使用?blowfish?算法來加密你的 SSH 會話,那么你只要把這一行加入你的/etc/ssh/ssh_config or ~/.ssh/config?文件就可以:

Cipher blowfish

默認的,SSH 會使用 3des 算法。

6. 打開調(diào)試模式

因為某些原因,我們想要追蹤調(diào)試我們建立的 SSH 連接情況。SSH 提供的?-v?選項參數(shù)正是為此而設(shè)的。

$ ssh -v 192.168.0.103

7. 綁定源地址

如果你的客戶端有多于兩個以上的 IP 地址,你就不可能分得清楚在使用哪一個 IP 連接到 SSH 服務(wù)器。

為了解決這種情況,我們可以使用?-b?選項來指定一個IP 地址。這個 IP 將會被使用做建立連接的源地址。

$ ssh -b 192.168.0.200 -l leni 192.168.0.103

服務(wù)端,我們可以使用 netstat 命令來檢查到服務(wù)的連接是否建立。可以看到 IP 為 192.168.0.200 的連接已經(jīng)建立。

8. 使用其他配置文件

默認情況下,ssh 會使用位于?/etc/ssh/ssh_config?的配置文件。這個配置文件作用于系統(tǒng)的所有用戶。但你想要為特定的用戶指定特殊的設(shè)置的話,可以把配置放入?~/.ssh/config?文件中。如果此文件不存在,可以手工創(chuàng)建一個。

下面是一個通用?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?選項。

$ ssh -F /home/pungki/my_ssh_config 192.168.0.101

9. 使用 SSH X11 Forwarding

某些時候,你可能想把服務(wù)端的 X11 應(yīng)用程序顯示到客戶端計算機上,SSH 提供了?-X?選項。但要啟用這功能,我們需要做些準備,下面是它的設(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īng)用了,僅僅只能輸入應(yīng)用程序的命令。讓我們試試,比如想運行 xclock 程序,輸入:

$ xclock

它就運行起來了,xclock 確實是運行在遠端系統(tǒng)的,但它在你的本地系統(tǒng)里顯示了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • SSH:1、查看SSH客戶端版本有的時候需要確認一下SSH客戶端及其相應(yīng)的版本號。使用ssh -V命令可以得到版本...
    faraway_com閱讀 1,451評論 0 6
  • 1、第八章 Samba服務(wù)器2、第八章 NFS服務(wù)器3、第十章 Linux下DNS服務(wù)器配站點,域名解析概念命令:...
    哈熝少主閱讀 3,893評論 0 10
  • nmap使用指南(終極版) 原創(chuàng)2017-09-09hl0rey信安之路 一、目標指定 1.CIDR標志位 192...
    用電熱毯烤豬閱讀 12,140評論 1 49
  • 集體死亡,霎時毀滅,總是毫無征兆的突然到來 從龐貝古城到汶川地震,從泰坦尼克到太平輪,從11年動車追尾,14年馬航...
    劉良昊閱讀 250評論 0 1

友情鏈接更多精彩內(nèi)容