红联Linux门户
Linux协助

SSH别号示例5则

发布时刻:2018-04-10 15:08:55来历:Linux社区作者:ch-cn
作为一个 Linux 用户,咱们常用 ssh 指令 来登入长途机器。ssh 指令你用得越多,你在键入一些重要的指令上花的时刻也越多。咱们能够用 界说在你的 .bashrc 文件里的别号 或函数来大幅度减缩花在指令行界面(CLI)的时刻。但这不是最佳处理之道。最佳方法是在 ssh 装备文件中运用 SSH 别号 。
 
这里是咱们能把 ssh 指令用得更好的几个比如。
 
ssh 登入到 AWS(译注:Amazon Web Services,亚马逊公司旗下云核算服务渠道)实例的衔接是一种痛。只是输入以下指令,每次也完全是糟蹋你时刻。
 
ssh -p 3000 -i /home/surendra/mysshkey.pem ec2-user@ec2-54-20-184-202.us-west-2.compute.amazonaws.com
缩短到:
 
ssh aws1
调试时衔接到体系。
 
ssh -vvv the_good_user@red1.taggle.abc.com.au
缩短到:
 
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: 创立主机(www.linuxnix.com)的 SSH 别号

 
修正 ~/.ssh/config 文件写入以下内容:
 
Host tlj
 User root
 HostName 18.197.176.13
 port 22
保存此文件。
 
以上 ssh 别号用了
 
tlj 作为一个别号的称号
root 作为即将登入的用户
18.197.176.13 作为主机的 IP 地址
22 作为拜访 SSH 服务的端口
输出:
 
sanne@Surendras-MacBook-Pro:~ > ssh tlj
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-93-generic x86_64)
 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud
Last login: Sat Oct 14 01:00:43 2017 from 20.244.25.231
root@linuxnix:~# exit
logout
Connection to 18.197.176.13 closed.

例 2: 不必暗码用 ssh 密钥登到体系要用 IdentityFile 。

 
例:
 
Host aws
 User ec2-users
 HostName ec2-54-200-184-202.us-west-2.compute.amazonaws.com
 IdentityFile ~/Downloads/surendra.pem
 port 22

例 3: 对同一主机运用不同的别号。

在下例中,咱们对同一 IP/主机 18.197.176.13 用了 tlj、 linuxnix、linuxnix.com 三个别号。

 
~/.ssh/config 文件内容
 
Host tlj linuxnix linuxnix.com
 User root
 HostName 18.197.176.13
 port 22
输出:
 
sanne@Surendras-MacBook-Pro:~ > ssh tlj
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-93-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
Last login: Sat Oct 14 01:00:43 2017 from 220.244.205.231
root@linuxnix:~# exit
logout
Connection to 18.197.176.13 closed.
sanne@Surendras-MacBook-Pro:~ > ssh linuxnix.com
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-93-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
Last login: Sun Oct 15 20:31:08 2017 from 1.129.110.13
root@linuxnix:~# exit
logout
Connection to 138.197.176.103 closed.
[6571] sanne@Surendras-MacBook-Pro:~ > ssh linuxnix
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-93-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
Last login: Sun Oct 15 20:31:20 2017 from 1.129.110.13
root@linuxnix:~# exit
logout
Connection to 18.197.176.13 closed.

例 4: 用相同的 SSH 别号仿制文件到长途体系

 
语法:
 
scp <文件名> <ssh_别号>:<方位>
比如:
 
sanne@Surendras-MacBook-Pro:~ > scp abc.txt tlj:/tmp
abc.txt                           100%   12KB  11.7KB/s   00:01    
sanne@Surendras-MacBook-Pro:~ >
若咱们现已将 ssh 主机设置好一个别号,因为 ssh 和 scp 两者用简直相同的语法和选项,scp 也能够容易运用。
 
请在下面测验从本机 scp 一个文件到长途机器。
 

例 5: 处理 Linux 中的 SSH 超时问题。


默许状况,假如你不积极地运用终端,你的 ssh 登入就会超时
 
SSH 超时问题 是一个更痛的点意味着你在一段时刻后不得不从头登入到长途机器。咱们能在 ~/.ssh/config 文件里面恰当地设置 SSH 超时时刻来使你的会话不论在什么时刻总是激活的。咱们将用 2 个能坚持会话存活的 SSH 选项来完成这一意图。之一是 ServerAliveInterval 坚持你会话存活的秒数和 ServerAliveCountMax 在(阅历了一个)给定数值的会话之后初始化会话。
 
ServerAliveInterval A
ServerAliveCountMax B
例:
 
Host tlj linuxnix linuxnix.com
 User root
 HostName 18.197.176.13
 port 22
 ServerAliveInterval 60
 ServerAliveCountMax 30
在下篇中咱们将会看到一些其他的退出方法。