Linux 中的 5 个 SSH 别名例子

简介:   作为一个 Linux 用户,我们常用 ssh 命令[1] 来登入远程机器。ssh 命令你用得越多,你在键入一些重要的命令上花的时间也越多。我们可以用 定义在你的 .bashrc 文件里的别名[2] 或函数来大幅度缩减花在命令行界面(CLI)的时间。但这不是最佳解决之道。最佳办法是在 ssh 配置文件中使用 SSH 别名 。  这里是我们能把 ssh 命令用得更好的几个例子。  ssh 登入到 AWS(译注:Amazon Web Services,亚马逊公司旗下云计算服务平台)实例的连接是一种痛。仅仅输入以下命令,每次也完全是浪费你时间。  ssh -p 3000 -i /hom

  作为一个 Linux 用户,我们常用 ssh 命令[1] 来登入远程机器。ssh 命令你用得越多,你在键入一些重要的命令上花的时间也越多。我们可以用 定义在你的 .bashrc 文件里的别名[2] 或函数来大幅度缩减花在命令行界面(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-2pute.amazonaws

  缩短到:

  ssh aws1

  调试时连接到系统。

  ssh -vvv the_good_user@red1.taggle.abc.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: 创建主机(linuxnix)的 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 tljWelcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-93-generic x86_64) Documentation: help.ubuntu Management: landscape.canonical * Support: ubuntu/advantage Get cloud support with Ubuntu Advantage Cloud Guest: ubuntu/business/services/cloudLast login: Sat Oct 14 01:00:43 2017 from 20.244.25.231root@linuxnix:~# exitlogoutConnection to 18.197.176.13 closed.

  例 2: 不用密码用 ssh 密钥登到系统要用 IdentityFile 。

  例:

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

  例 3: 对同一主机使用不同的别名。在下例中,我们对同一 IP/主机 18.197.176.13 用了 tlj、 linuxnix、linuxnix 三个别名。

  ~/.ssh/config 文件内容

  Host tlj linuxnix linuxnix User root HostName 18.197.176.13 port 22

  输出:

  sanne@Surendras-MacBook-Pro:~ > ssh tljWelcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-93-generic x86_64) Documentation: help.ubuntu Management: landscape.canonical Support: ubuntu/advantageGet cloud support with Ubuntu Advantage Cloud Guest:ubuntu/business/services/cloudLast login: Sat Oct 14 01:00:43 2017 from 220.244.205.231root@linuxnix:~# exitlogoutConnection to 18.197.176.13 closed.sanne@Surendras-MacBook-Pro:~ > ssh linuxnixWelcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-93-generic x86_64) Documentation: help.ubuntu Management: landscape.canonical Support: ubuntu/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:ubuntu/business/services/cloudLast login: Sun Oct 15 20:31:08 2017 from 1.129.110.13root@linuxnix:~# exitlogoutConnection to 138.197.176.103 closed.[6571] sanne@Surendras-MacBook-Pro:~ > ssh linuxnixWelcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-93-generic x86_64) Documentation: help.ubuntu Management: landscape.canonical* Support: ubuntu/advantageGet cloud support with Ubuntu Advantage Cloud Guest:ubuntu/business/services/cloudLast login: Sun Oct 15 20:31:20 2017 from 1.129.110.13root@linuxnix:~# exitlogoutConnection to 18.197.176.13 closed.

  例 4: 用相同的 SSH 别名复制文件到远程系统

  语法:

  scp <文件名> :<位置>

  例子:

  sanne@Surendras-MacBook-Pro:~ > scp abc.txt tlj:/tmpabc.txt 100% 12KB 11.7KB/s 00:01 sanne@Surendras-MacBook-Pro:~ >

  若我们已经将 ssh 主机设置好一个别名,由于 ssh 和 scp 两者用几乎相同的语法和选项,scp 也可以轻易使用。

  请在下面尝试从本机 scp 一个文件到远程机器。

  例 5: 解决 Linux 中的 SSH 超时问题。默认情况,如果你不积极地使用终端,你的 ssh 登入就会超时

  SSH 超时问题[3] 是一个更痛的点意味着你在一段时间后不得不重新登入到远程机器。我们能在 ~/.ssh/config 文件里边恰当地设置 SSH 超时时间来使你的会话不管在什么时间总是激活的。我们将用 2 个能保持会话存活的 SSH 选项来实现这一目的。之一是 ServerAliveInterval 保持你会话存活的秒数和 ServerAliveCountMax 在(经历了一个)给定数值的会话之后初始化会话。

  ServerAliveInterval AServerAliveCountMax B

  例:

  Host tlj linuxnix linuxnix User root HostName 18.197.176.13 port 22 ServerAliveInterval 60 ServerAliveCountMax 30

目录
相关文章
|
19天前
|
Web App开发 存储 Linux
Linux(33)Rockchip RK3568 Ubuntu22.04上通过SSH运行Qt程序和关闭Chrome的密钥提示
Linux(33)Rockchip RK3568 Ubuntu22.04上通过SSH运行Qt程序和关闭Chrome的密钥提示
58 0
|
1月前
|
安全 Linux Shell
Linux SSH(Secure Shell)服务
Linux SSH提供安全网络协议,使用公钥加密技术确保远程服务传输安全。OpenSSH是实现SSH服务的免费开源工具,允许用户加密连接远程登录Linux服务器执行任务。SSH比Telnet更安全,防止数据被截获。SSH还支持端口转发和隧道,广泛应用于系统管理和网络维护,是安全远程访问服务器的重要工具。
26 1
|
2月前
|
安全 Shell Linux
【Shell 命令集合 文件管理】Linux ssh 远程主机之间复制文件 scp 命令使用教程
【Shell 命令集合 文件管理】Linux ssh 远程主机之间复制文件 scp 命令使用教程
45 0
|
20天前
|
Linux 网络安全 数据安全/隐私保护
SSH工具连接远程服务器或者本地Linux系统
SSH工具连接远程服务器或者本地Linux系统
20 0
|
1月前
|
Linux 网络安全
linux免密登录报错 Bad owner or permissions on /etc/ssh/ssh_config.d/05-redhat.conf
linux免密登录报错 Bad owner or permissions on /etc/ssh/ssh_config.d/05-redhat.conf
34 1
|
7天前
|
存储 安全 Linux
|
13天前
|
监控 安全 Linux
【专栏】Linux SSH 的安全对于远程管理至关重要,这几个小妙招安排上!
【4月更文挑战第28天】在数字化时代,Linux SSH 的安全对于远程管理至关重要。增强 SSH 安全包括:使用强密码,调整 SSH 配置文件,尤其是端口号和认证方式;采用密钥认证代替密码;限制登录用户,禁止密码登录;使用防火墙限制访问;定期更新系统和软件。此外,通过日志监控、入侵检测系统及及时应对攻击来提升安全监控。保持对安全知识的学习和更新,结合最佳实践,是保障 SSH 安全的关键。记得安全是个持续过程,时刻保持警惕!
|
20天前
|
Linux 网络安全
Linux(16)ssh_exchange_identification: read: Connection reset by peer问题
Linux(16)ssh_exchange_identification: read: Connection reset by peer问题
19 0
|
6天前
|
安全 Linux 网络安全
|
18天前
|
安全 Unix Linux
基于MobaXterm工具的Linux远程SSH登录
本文介绍了如何使用 MobaXterm 进行 Linux 远程登录。首先,从官方网站下载并安装 MobaXterm。启动后,创建新的远程会话,选择 SSH 类型,输入服务器 IP、主机名和端口。接着,提供用户名和密码进行连接。成功后,即可使用远程终端执行命令。此外,文章还提到了其他常用的 Linux 远程登录工具,如 PuTTY、OpenSSH、SecureCRT 和 Xshell,强调了选择工具时应考虑个人偏好和安全需求。