歡迎光臨
每天分享高質量文章

Linux 中的 5 個 SSH 別名例子 | Linux 中國

我們可以用 定義在你的 .bashrc 檔案裡的別名 或函式來大幅度縮減花在命令列介面(CLI)的時間。但這不是最佳解決之道。最佳辦法是在 ssh 配置檔案中使用 SSH 別名 。
— Surendra Anne


致謝
編譯自 | https://www.linuxnix.com/5-ssh-alias-examples-using-ssh-config-file/ 
 作者 | Surendra Anne
 譯者 | ch-cn ? ? 共計翻譯:4 篇 貢獻時間:574 天

作為一個 Linux 使用者,我們常用 ssh 命令[1] 來登入遠端機器。ssh 命令你用得越多,你在鍵入一些重要的命令上花的時間也越多。我們可以用 定義在你的 .bashrc 檔案裡的別名[2] 或函式來大幅度縮減花在命令列介面(CLI)的時間。但這不是最佳解決之道。最佳辦法是在 ssh 配置檔案中使用 SSH 別名 。

這裡是我們能把 ssh 命令用得更好的幾個例子。

ssh 登入到 AWS(譯註:Amazon Web Services,亞馬遜公司旗下雲端計算服務平臺)實體的連線是一種痛。僅僅輸入以下命令,每次也完全是浪費你時間。

  1. ssh -p 3000 -i /home/surendra/mysshkey.pem ec2-user@ec2-54-20-184-202.us-west-2.compute.amazonaws.com

縮短到:

  1. ssh aws1

除錯時連線到系統。

  1. ssh -vvv the_good_user@red1.taggle.abc.com.au

縮短到:

  1. ssh xyz

在本篇中,我們將看到如何不使用 bash 別名或函式實現 ssh 命令的縮短。ssh 別名的主要優點是所有的 ssh 命令快捷方式都儲存在一個單一檔案,如此就易於維護。其他優點是 對於類似於 SSH 和 SCP 的命令 我們能用相同的別名。

在我們進入實際配置之前,我們應該知道 /etc/ssh/ssh_config/etc/ssh/sshd_config 和 ~/.ssh/config 檔案三者的區別。以下是對這些檔案的解釋。

/etc/ssh/ssh_config 和 ~/.ssh/config 間的區別

系統級別的 SSH 配置項存放在 /etc/ssh/ssh_config,而使用者級別的 SSH 配置項存放在 ~/.ssh/config 檔案中。

/etc/ssh/sshconfig 和 /etc/ssh/sshdconfig 間的區別

系統級別的 SSH 配置項是在 /etc/ssh/ssh_config 檔案中,而系統級別的 SSH 服務端配置項存放在 /etc/ssh/sshd_config 檔案。

在 ~/.ssh/config 檔案裡配置項的語法

~/.ssh/config 檔案內容的語法:

  1. 配置項

  2. 配置項 1 2

例 1: 建立主機(www.linuxnix.com)的 SSH 別名

編輯 ~/.ssh/config 檔案寫入以下內容:

  1. Host tlj

  2. User root

  3. HostName 18.197.176.13

  4. port 22

儲存此檔案。

以上 ssh 別名用了

☉ tlj 作為一個別名的名稱
☉ root 作為將要登入的使用者
☉ 18.197.176.13 作為主機的 IP 地址
☉ 22 作為訪問 SSH 服務的埠

輸出:

  1. sanne@Surendras-MacBook-Pro:~ > ssh tlj

  2. Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-93-generic x86_64)

  3. * Documentation:  https://help.ubuntu.com

  4. * Management:     https://landscape.canonical.com

  5. * Support:        https://ubuntu.com/advantage

  6.  Get cloud support with Ubuntu Advantage Cloud Guest:

  7.    http://www.ubuntu.com/business/services/cloud

  8. Last login: Sat Oct 14 01:00:43 2017 from 20.244.25.231

  9. root@linuxnix:~# exit

  10. logout

  11. Connection to 18.197.176.13 closed.

例 2: 不用密碼用 ssh 金鑰登到系統要用 IdentityFile 。

例:

  1. Host aws

  2. User ec2-users

  3. HostName ec2-54-200-184-202.us-west-2.compute.amazonaws.com

  4. IdentityFile ~/Downloads/surendra.pem

  5. port 22

例 3: 對同一主機使用不同的別名。在下例中,我們對同一 IP/主機 18.197.176.13 用了 tlj、 linuxnixlinuxnix.com 三個別名。

~/.ssh/config 檔案內容

  1. Host tlj linuxnix linuxnix.com

  2. User root

  3. HostName 18.197.176.13

  4. port 22

輸出:

  1. sanne@Surendras-MacBook-Pro:~ > ssh tlj

  2. Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-93-generic x86_64)

  3. * Documentation: https://help.ubuntu.com

  4. * Management: https://landscape.canonical.com

  5. * Support: https://ubuntu.com/advantage

  6. Get cloud support with Ubuntu Advantage Cloud Guest:

  7. http://www.ubuntu.com/business/services/cloud

  8. Last login: Sat Oct 14 01:00:43 2017 from 220.244.205.231

  9. root@linuxnix:~# exit

  10. logout

  11. Connection to 18.197.176.13 closed.

  12. sanne@Surendras-MacBook-Pro:~ > ssh linuxnix.com

  13. Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-93-generic x86_64)

  14. * Documentation: https://help.ubuntu.com

  15. * Management: https://landscape.canonical.com

  16. * Support: https://ubuntu.com/advantage

  1. Get cloud support with Ubuntu Advantage Cloud Guest:

  2. http://www.ubuntu.com/business/services/cloud

  3. Last login: Sun Oct 15 20:31:08 2017 from 1.129.110.13

  4. root@linuxnix:~# exit

  5. logout

  6. Connection to 138.197.176.103 closed.

  7. [6571] sanne@Surendras-MacBook-Pro:~ > ssh linuxnix

  8. Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-93-generic x86_64)

  9. * Documentation: https://help.ubuntu.com

  10. * Management: https://landscape.canonical.com

  11. * Support: https://ubuntu.com/advantage

  12. Get cloud support with Ubuntu Advantage Cloud Guest:

  13. http://www.ubuntu.com/business/services/cloud

  14. Last login: Sun Oct 15 20:31:20 2017 from 1.129.110.13

  15. root@linuxnix:~# exit

  16. logout

  17. Connection to 18.197.176.13 closed.

例 4: 用相同的 SSH 別名複製檔案到遠端系統

語法:

  1. scp <ssh_別名>:

例子:

  1. sanne@Surendras-MacBook-Pro:~ > scp abc.txt tlj:/tmp

  2. abc.txt                           100%   12KB  11.7KB/s   00:01    

  3. sanne@Surendras-MacBook-Pro:~ >

若我們已經將 ssh 主機設定好一個別名,由於 ssh 和 scp 兩者用幾乎相同的語法和選項,scp 也可以輕易使用。

請在下麵嘗試從本機 scp 一個檔案到遠端機器。

例 5: 解決 Linux 中的 SSH 超時問題。預設情況,如果你不積極地使用終端,你的 ssh 登入就會超時

SSH 超時問題[3] 是一個更痛的點意味著你在一段時間後不得不重新登入到遠端機器。我們能在 ~/.ssh/config 檔案裡邊恰當地設定 SSH 超時時間來使你的會話不管在什麼時間總是啟用的。我們將用 2 個能保持會話存活的 SSH 選項來實現這一目的。之一是 ServerAliveInterval 保持你會話存活的秒數和 ServerAliveCountMax 在(經歷了一個)給定數值的會話之後初始化會話。

  1. ServerAliveInterval A

  2. ServerAliveCountMax B

例:

  1. Host tlj linuxnix linuxnix.com

  2. User root

  3. HostName 18.197.176.13

  4. port 22

  5. ServerAliveInterval 60

  6. ServerAliveCountMax 30

在下篇中我們將會看到一些其他的退出方式。


via: https://www.linuxnix.com/5-ssh-alias-examples-using-ssh-config-file/

作者:SURENDRA ANNE[5] 譯者:ch-cn 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

贊(0)

分享創造快樂