Linux 下你所不知道的 7 個 SSH 命令用法

一個系統管理員可能會同時管理着多臺服務器,這些服務器也許會放在不一樣的地方。要親自一臺一臺的去訪問來管理它們顯然不是最好的方法,經過遠程控制的方法應該是最有效的。
shell

Linux系統的遠程管理工具大概有幾種:telnet,ssh,vnc等,其中ssh是最經常使用的管理方法,採用密文的傳輸方式,簡單安全。安全

Secure Shell縮寫是SSH, 由IETF的網絡工做小組(Network Working Group)所制定,SSH是一項建立在應用層和傳輸層基礎上的安全協議,爲計算機的shell提供安全的傳輸和使用環境。bash

下面咱們來介紹 SSH 的 7 大用法。服務器

1. 基本用法

最簡單的用法就是不帶參數,僅輸入 ssh 再加上主機地址,好比:網絡

ssh 192.168.0.116複製代碼

這種形式登錄主機,會默認使用當前用戶進行登陸。第一次鏈接的時候,SSH 會確認目標主機的真實性,若是沒有問題的話,輸入 yes 便可。app

若是咱們想要以指定用戶名來登陸主機,有兩種方法:ssh

a. 使用 -l 選項工具

ssh -l alvin 192.168.0.116複製代碼

b. 使用 user@hostname 格式加密

ssh alvin@192.168.0.116複製代碼

這兩種方法,其中第二種尤其經常使用。spa

2. 指定端口登陸

SSH 默認使用的端口號是 22。大多現代的 Linux 系統 22 端口都是開放的。若是你運行 ssh 程序而沒有指定端口號,它直接就是經過 22 端口發送請求的。

若是咱們不想經過 22 端口登陸,那麼咱們可使用 -p 選項來指定端口。

ssh 192.168.0.116 -p 1234複製代碼

引伸話題:如何修改端口號?

只需修改 /etc/ssh/ssh_config ,修改以下一行:

Port 22複製代碼

3. 對全部數據請求壓縮

使用 -C 選項,全部經過 SSH 發送或接收的數據將會被壓縮,而且任然是加密的。

ssh -C 192.168.0.116複製代碼

可是,這個選項在網速不是很快的時候比較有用,而當網速較快的時候,使用壓縮反而會下降效率,因此要視狀況使用。

4. 打開調試模式

由於某些緣由,咱們想要追蹤調試咱們創建的 SSH 鏈接狀況。SSH 提供的 -v 選項參數正是爲此而設的。其能夠看到在哪一個環節出了問題。

[Alvin.Alvin-computer] ➤ ssh -v pi@192.168.0.116
OpenSSH_7.1p2, OpenSSL 1.0.1g 7 Apr 2014
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to 192.168.0.116 [192.168.0.116] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4p1 Raspbian-10+deb9u4
debug1: match: OpenSSH_7.4p1 Raspbian-10+deb9u4 pat OpenSSH* compat 0x04000000
debug1: Authenticating to 192.168.0.116:22 as 'pi'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received複製代碼

5. 綁定源地址

若是你的客戶端有多於兩個以上的 IP 地址,你就不可能分得清楚在使用哪個 IP 鏈接到 SSH 服務器。爲了解決這種狀況,咱們可使用 -b 選項來指定一個IP 地址。這個 IP 將會被使用作創建鏈接的源地址。

[Alvin.Alvin-computer] ➤ ssh -b 192.168.0.105 pi@192.168.0.116
Linux raspberrypi 4.14.71-v7+ #1145 SMP Fri Sep 21 15:38:35 BST 2018 armv7l
​
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
​
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Feb 24 08:52:29 2019 from 192.168.0.105複製代碼

6. 遠程執行命令

若是咱們想在目標主機執行一條命令,咱們一般的作法是,先登陸到目標主機,執行命令,再退出來。這樣作固然是能夠,可是比較麻煩。

若是咱們僅僅是想遠程執行一條命令,能夠直接在後面跟上命令就好,以下:

[Alvin.Alvin-computer] ➤ ssh pi@192.168.0.116 ls -l
Desktop
Documents
Downloads
MagPi
Music複製代碼

7. 掛載遠程文件系統

另一個很讚的基於 SSH 的工具叫 sshfs。 sshfs 可讓你在本地直接掛載遠程主機的文件系統。它的使用格式以下:

sshfs -o idmap=user user@hostname:/home/user ~/Remote複製代碼

好比:

sshfs -o idmap=user pi@192.168.0.116:/home/pi ~/Pi複製代碼

我是良許,世界500強外企 Linux 開發工程師,專業生產 Linux 乾貨。歡迎關注個人公衆號「良許Linux」,回覆「1024」獲取最新最全的技術資料,回覆「入羣」進入高手如雲技術交流羣。

相關文章
相關標籤/搜索