Linux下10個常用的SSH命令選項

2021-08-10 23:08:14 字數 4698 閱讀 8387

ssh(全稱 secure shell)是一種加密的網路協議。使用該協議的資料將被加密,如果在傳輸中間資料洩漏,也可以確保沒有人能讀取出有用資訊。要使用 ssh,目標機器應該安裝 ssh 服務端應用程式,因為 ssh 是基於客戶-服務模式的。 當你想安全的遠端連線到主機,可中間的網路(比如網際網路)並不安全,通常這種情況下就會使用 ssh。

linux 系統預設已經安裝了 ssh。可以手工來安裝一下。最簡單的方式就是使用 linux 包管理器。

基於debian / ubuntu的系統 :

安裝 ssh-client

$ sudo apt-get install openssh-client
安裝 ssh-server

$ sudo apt-get install openssh-server
基於redhat / centos的系統 :

# yum install openssh-server openssh-clients
ssh 一旦安裝上,我們就可以在終端下輸入 ssh 來檢查下安裝的是否正常。

lab602@whh:~$ ssh

usage: ssh [

-1246aacfggkkmnnqsttvvxxyy]

[-b bind_address]

[-c cipher_spec][-d

[bind_address:]

port]

[-e log_file]

[-e escape_char]

[-f configfile]

[-i pkcs11]

[-i identity_file]

[-l address]

[-l login_name]

[-m mac_spec]

[-o ctl_cmd]

[-o option]

[-p port]

[-q query_option]

[-r address]

[-s ctl_path]

[-w host:port]

[-w local_tun[:remote_tun]

] [user@]

hostname

[command]

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

1. 無選項引數執行 ssh

通常使用 ssh 的方式就是不加任何選項引數,僅僅輸入 「ssh」。下面是示例:

$ ssh 192.168.0.103
第一次連線目標主機時,ssh 會讓你確認目標主機的真實性。如果你回答的是 no,ssh 將不會繼續連線,只有回答 yes 才會繼續。

下一次再登陸此主機時,ssh 就不會提示確認訊息了。對此主機的真實驗證資訊已經預設儲存在每個使用者的 /home/user/.ssh 檔案裡。

2. 指定登陸使用者

預設的,ssh 會嘗試用當前使用者作為使用者名稱來連線。在上面的示例命令中,ssh 會嘗試用使用者名叫 pungki 的使用者身份來登入伺服器,這是因為使用者 pungki 正在客戶機上使用 ssh 客戶端軟體。

假如目標主機上沒有叫 pungki 的使用者,這時你就必須提供乙個目標主機上存在的使用者名稱。從一開始就要指定使用者名稱的,可以使用 -l 選項引數。

$ ssh -l leni 192.168.0.103
也可以這樣輸入:

$ ssh [email protected]
3. 指定埠

ssh 預設使用的埠號是 22。大多現代的 linux 系統 22 埠都是開放的。如果你執行 ssh 程式而沒有指定埠號,它直接就是通過 22 埠傳送請求的。

一些系統管理員會改變 ssh 的預設埠號。要連上那主機,就要使用-p選項,後面在加上 ssh 埠號。

$ ssh 192.168.0.103-p 1234
要改變埠號,我們需要修改 /etc/ssh/ssh_config 檔案,找到此行:

port22
把它換成其他的埠號,比如上面示例的 1234 埠,然後重啟 ssh 服務。

4.對所有資料請求壓縮

有了這個選項,所有通過 ssh 傳送或接收的資料將會被壓縮,並且仍然是加密的。要使用 ssh 的壓縮功能,使用 -c 選項。

$ ssh -c 192.168.0.103
如果你的連網速度很慢的話,比如用 modem 上網,這個選項非常有用。但如果你使用的是像 lan 或其它更高階網路的話,壓縮反而會降低你的傳輸速度。可以使用* -o* 選項加上壓縮級別引數來控制壓縮的級別,但這個選項僅僅只在ssh-1下起作用。

5. 指定乙個加密演算法

ssh 提供了一些可用的加密演算法。可以在 /etc/ssh/ssh_config or ~/.ssh/config 檔案中看到(如果存在的話)。

ssh cipher configuration example

如果想使用 blowfish 演算法來加密你的 ssh 會話,只要把這一行加入你的/etc/ssh/ssh_config or ~/.ssh/config檔案就可以:

cipher blowfish
預設的,ssh 會使用 3des 演算法。

6. 開啟除錯模式

因為某些原因,我們想要追蹤除錯我們建立的 ssh 連線情況。ssh 提供的 -v 選項引數正是為此而設的。

$ ssh -v 192.168.0.103
7. 繫結源位址

如果你的客戶端有多於兩個以上的 ip 位址,你就不可能分得清楚在使用哪乙個 ip 連線到 ssh 伺服器。

為了解決這種情況,我們可以使用 -b 選項來指定乙個ip 位址。這個 ip 將會被使用做建立連線的源位址。

$ ssh -b 192.168.0.200-l leni 192.168.0.103
服務端,我們可以使用 netstat 命令來檢查到服務的連線是否建立。

8. 使用其他配置檔案

預設情況下,ssh 會使用位於 /etc/ssh/ssh_config 的配置檔案。這個配置檔案作用於系統的所有使用者。但你想要為特定的使用者指定特殊的設定的話,可以把配置放入 ~/.ssh/config 檔案中。如果此檔案不存在,可以手工建立乙個。

下面是乙個通用 ssh_config 檔案配置的例子。這配置檔案位於 /home/pungki 目錄下。

host192.168.0.*

forwardx11 yes

passwordauthentication yes

connecttimeout10

ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc

protocol2

hashknownhosts yes

要使用指定的配置檔案,可以使用 -f 選項。

$ ssh -f /home/pungki/my_ssh_config 192.168.0.101
9. 使用 ssh x11 forwarding 服務端應用程式顯示到客戶端

某些時候,你可能想把服務端的 x11 應用程式顯示到客戶端計算機上,ssh 提供了-x選項。但要啟用這功能,我們需要做些準備,下面是它的設定:

在伺服器端,你需要使 /etc/ssh/ssh_config 檔案中的行設定成 forwardx11 yes 或者 x11forwad yes,以啟用 x11 forwarding,重啟 ssh 服務程式。

然後在客戶端,輸入 ssh -x user@host:

$ ssh -x [email protected]
一旦登陸,可以輸入:

$ echo $display
來檢查,你應該可以看到向如下所示的

localhost:10:0
隨後就可以執行應用了,僅僅只能輸入應用程式的命令。讓我們試試,比如想執行 xclock 程式,輸入:

$ xclock
它就執行起來了,xclock 確實是執行在遠端系統的,但它在你的本地系統裡顯示了。

10. 可信任的 x11 **

如果你敢肯定你的網路是安全的,那麼你可以使用可信任的 x11 **機制。這意味著遠端的 x11 客戶端可以完全的訪問源 x11 顯示內容。要使用此功能,可以使用 -y 選項。

$ ssh -y [email protected]

Linux環境下常用的SSH命令

目錄操作 rm rf mydir 刪除mydir目錄 mkdir dirname 建立名為dirname的目錄 cd mydir 進入mydir目錄 cd 回上一級目錄 cd 回父目錄,中間有空格 cd 回根目錄 mv tools tool 把tools目錄改名為tool ln s tool bac...

Linux 下SSH常用命令

目錄操作 rm rf mydir mkdir dirname cd mydir cd cd cd mv tools tool ln s tool bac cp a tool home vpser www 檔案操作 rm go.tar find mt.cgi df h 解壓縮 tar xvf word...

Linux下最常用的10個檔案壓縮工具

作者簡介 作為運維人員,經常會遇到 小李啊,幫我取一下今天的日誌 因此在linux伺服器上壓縮包 解壓包是經常的事情,但是就我個人而言,經常會遇到很多不一樣的壓縮解壓工具,最常用的是tar。雖然經常用,但是還是很多引數記不住,當然不用去記住每乙個引數,help就行。在十萬火急的情況下,乙個解壓還要去...