Linux 中的 SSH 命令及使用示例

SSH 是一種用於安全登錄遠程機器並執行命令的網絡協議。 它的設計和創建旨在在遠程訪問另一台計算機時提供最佳安全性。 每當計算機向網絡發送數據時,ssh 都會自動對其進行加密。

要使用 SSH,目標計算機應安裝 SSH 服務器應用程序,因為 SSH 是客戶端-服務器模型。 默認情況下,SSH 服務器偵聽標準 TCP 端口 22。SSH 客戶端默認可用於所有 Linux 發行版。

在本教程中,我們學習 SSH 命令Linux 帶有使用示例。

先決條件

  • 一個 SSH 客戶端
  • 一個 SSH 服務器
  • 遠程服務器的 IP 地址或名稱

1. 如何通過 SSH 連接到遠程服務器

使用 IP 地址或主機名連接遠程服務器。 要使用 IP 地址連接 ssh,請使用以下命令:

ssh [ IP ADDRESS]

要使用名稱連接到 ssh,請使用以下命令:

ssh [ HOSTNAME ]

為了 example, 要使用 IP 地址 192.168.239.133 連接到遠程主機,命令如下。

$ ssh 192.168.239.133

當您第一次連接到主機時,會出現一條消息,詢問您是否要繼續連接。 輸入 yes,然後輸入遠程主機的密碼。

2. SSH 用戶名

SSH 在嘗試連接時使用遠程服務器的當前用戶。 要使用用戶名連接到 ssh,請使用以下語法。

ssh [USERNAME]@[HOSTNAME/IP ADDRESS]

為了 example, 要連接到 IP 地址為 192.168.239.134 且用戶名為 kali 的遠程主機,請使用以下命令。

$ ssh [email protected]

  使用用戶名的 SSH

3. SSH 使用不同的端口號

SSH 服務器默認偵聽 TCP 端口 22,但如果您想更改它,則需要在命令中指定端口。

要使用不同的端口號連接到遠程主機,請使用 -p 標誌,如以下語法所示。

ssh [ IP ADDRESS/HOSTNAME ] -p [ PORT NUMBER ]

為了 example, 要使用端口號 223 連接到 IP 地址為 192.168.239.134 的遠程主機,請使用以下命令。

$ ssh 192.168.239.134 -p 223

  端口號為 223 的 SSH

4. SSH 無密碼

只需三個簡單的步驟,您就可以使用 ssh 連接到遠程主機,無需密碼。 不輸入密碼登錄遠程服務器所需的三個步驟如下。

生成 SSH 密鑰

要生成 SSH 密鑰,使用 ssh-keygen 來創建公鑰和私鑰。 這些密鑰對用於在客戶端和服務器之間進行身份驗證。

要創建一對密鑰,請在客戶端計算機上輸入以下命令。

$ ssh-keygen -t rsa

生成 SSH 密鑰

Enter 位置和釋義,或按 Enter 使用默認設置。

複製公共 SSH 密鑰

您需要將公共 SSH 密鑰複製到遠程服務器才能使用密鑰對。 要將公共 SSH 密鑰複製到遠程服務器,請在主機上使用以下語法。

ssh-copy-id [USERNAME]@[HOSTNAME/IP ADDRESS]

要從 IP 地址 192.168.239.134 複製 SSH 密鑰,請使用以下命令。

$ ssh-copy-id [email protected]

複製公共 SSH 密鑰

無需密碼即可遠程登錄

您現在可以使用以下命令在沒有密碼的情況下登錄遠程服務器。

ssh [USERNAME]@[HOSTNAME/IP ADDRESS]

為了 example, 要連接到 IP 地址為 192.168.239.134 且用戶名為 kali 的遠程主機,請使用以下命令。

$ ssh [email protected]

無需密碼遠程登錄

5. 使用 SSH 在遠程服務器上運行命令

ssh 命令可用於登錄遠程服務器。 它還可用於在遠程服務器上執行命令。

通過 ssh 執行命令的基本語法如下。

ssh USER1@SERVER1 COMMAND1

ssh USER1@SERVER1 'COMMAND2'

ssh USER1@SERVER1 'COMMAND1 | COMMAND2'

ssh ADMIN@BOX1 "COMMAND1; COMMAND2; COMMAND3"

要獲取遠程服務器日期和時間,請使用以下語法:

ssh USER1@SERVER1 date

為了 example, 要從 IP 地址為 192.168.239.134 的服務器獲取 kali 用戶的日期,請使用以下命令。

$ ssh [email protected] date

遠程服務器日期

要檢查遠程服務器磁盤空間使用情況,語法如下。

ssh USER1@SERVER1 'df -H'

為了 example, 要從 IP 地址為 192.168.239.134 的服務器獲取 kali 用戶的磁盤空間使用情況,請使用以下命令。

$ ssh [email protected] 'df -H'

遠程服務器磁盤空間使用情況

要檢查遠程用戶的上次重啟日誌,請使用以下語法。

ssh USER1@SERVER1 "last reboot"

為了 example, 要從 IP 地址為 192.168.239.134 的服務器獲取 kali 用戶的最後一次重啟日誌,請使用以下命令。

$ ssh [email protected] "last reboot"

遠程用戶上次重啟日誌

SSH 命令行選項

讓我們看看 ssh 命令的一些可用選項。

SSH -C

將 -C 選項與 ssh 結合使用以請求對從遠程服務器接收或傳輸的所有數據進行壓縮,如以下語法所示。

ssh -C [USERNAME]@[HOSTNAME/IP ADDRESS]

例如,

$ ssh -C [email protected]

ssh -v

-v 選項與 ssh 命令一起用於調試 ssh 客戶端。 以下是語法:

$ ssh -v [USERNAME]@[HOSTNAME/IP ADDRESS]

例如,

$ ssh -v [email protected]

調試 SSH 客戶端

ssh -b

-b 選項用於將 IP 地址綁定到 SSH 連接。 IP 地址將用作 SSH 連接的源地址。 當客戶端有兩個以上的 IP 地址並且您可能不知道哪個 IP 地址用於創建到 SSH 服務器的連接時,將使用此選項。

為了 example,

$ ssh -b 192.168.239.133 [email protected]

該命令會將 IP 地址綁定到遠程服務器。 我們可以使用 netstat |grep ssh 命令來檢查連接。

綁定IP地址

SSH -F

-F 選項與 ssh 命令一起使用來指定每個用戶的配置。 默認配置文件是 ~/.ssh/config。

要使用特定的配置文件,請按以下方式使用 -F 選項。

$ ssh -F [File Location] [USERNAME]@[HOSTNAME/IP ADDRESS]

例如,

$ ssh -F /etc/ssh/ssh_config.d [email protected]

SSH -L

-L 選項用於本地端口轉發。 本地端口轉發允許我們通過代理將流量從我們的主機路由到目標端口。

本地端口轉發的基本語法如下。

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATIONPORT [USERNAME]@[HOSTNAME/IP ADDRESS]

為了 example,運行以下命令連接到遠程主機的kali用戶的3306端口,IP為192.168.239.134,來自localhost 192.168.239.133端口3336。

$ ssh -L 3336:192.168.239.133:3306 [email protected]

本地端口轉發

SSH -R

-R 選項與 SSH 命令一起使用以啟用遠程端口轉發。 這意味著您可以將遠程服務器上的端口轉發到本地計算機上的端口,然後再轉發到目標計算機上的端口。

遠程端口轉發的基本語法如下。

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [USERNAME]@[HOSTNAME/IP ADDRESS]

為了 example,

$ ssh -R 3336:192.168.239.133:3000 [email protected]

該命令將使 ssh 在 3336 端口偵聽 ssh 服務器,並將所有流量隧道傳輸到 3000 端口。

遠程端口轉發

ssh -C -D

-D 選項啟用動態端口轉發。 通常的 SOCKS 端口是 1001,但是,可以使用任何端口號; 儘管如此,有些程序只能在 1001 端口上運行。

動態轉發的基本語法如下。

ssh -D [LOCAL_IP:]LOCAL_PORT [USERNAME]@[HOSTNAME/IP ADDRESS]

為了 example,

$ sudo ssh -C -D 1001 [email protected]

-D 指定 1001 端口中的動態端口轉發,-C 啟用壓縮。

動態端口轉發

SSH -X

-X 選項與 ssh 一起用於 X11 轉發。 以下是 X11 轉發的語法。

ssh -X [USERNAME]@[HOSTNAME/IP ADDRESS]

使用以下命令,在 IP 地址為 192.168.239.134 的 kali 用戶上啟用 X11 轉發。

$ ssh -X 192.168.239.134

SSH -Y

-Y 選項與 ssh 一起用於 Trusted X11 轉發。 這意味著遠程 X11 將可以完全訪問原始 X11 顯示。

ssh -Y [USERNAME]@[HOSTNAME/IP ADDRESS]

使用以下命令,在 IP 地址為 192.168.239.134 的 kali 用戶上啟用 Trusted X11 轉發。

$ ssh -Y 192.168.239.134

可信轉發

ssh -o

-o 選項可以與其他選項一起使用。

為了 example,

$ ssh -o "batchmode=yes" [email protected]

如果使用 ssh -o “batchmode=yes”,如果啟用了無密碼連接,該命令將在遠程計算機上成功運行,否則將返回錯誤。

ssh -o 批處理模式 = 是

下表顯示了一些最重要的命令行選項。

選項描述
-一個它允許轉發身份驗證代理連接。
-一個它禁用要轉發的身份驗證代理連接。
-b它用於綁定源地址。
-C它用於數據壓縮。
-c cipher_spec它選擇加密會話的密碼規範。
-D它負責動態應用級端口轉​​發。
-E 日誌文件它將調試日誌附加到 log_file 而不是標準錯誤。
-F 配置文件它指定了每個用戶的配置文件。
-G它允許遠程主機連接到本地轉發端口。
-i 身份文件它讀取用於公鑰認證的私鑰。
-j它指定了一個 ProxyJump 配置指令。
-l 登錄名它指定登錄到遠程機器的用戶。
-p 端口它用於指定連接到遠程主機的端口。
-q這是安靜模式。
-V詳細模式。
-X它啟用 X11 轉發
-Y它啟用可信 X11 轉發

結論

在本教程中,我們學習瞭如何使用 ssh 命令以及有用的示例。 感謝您的閱讀,請在下面的評論部分提供您的反饋和建議。