当前位置: 首页 > 科技观察

5Linux中的SSH别名实例

时间:2023-03-20 01:00:55 科技观察

作为Linux用户,我们经常会使用ssh命令来登录远程机器。使用ssh命令越多,输入一些重要命令的时间就越多。通过在.bashrc文件中定义别名或函数,我们可以大大减少花在命令行界面(CLI)上的时间。但这不是解决它的唯一方法。最好的方法是在ssh配置文件中使用SSH别名。以下是我们如何更好地使用ssh命令的几个示例。与AWS实例的ssh连接很痛苦。每次只输入以下命令完全是在浪费你的时间。ssh-p3000-i/home/surendra/mysshkey.pemec2-user@ec2-54-20-184-202.us-west-2.compute.amazonaws.com缩写为:sshaws1在调试时连接到系统。ssh-vvvthe_good_user@red1.taggle.abc.com.au缩写为:sshxyz在本文中,我们将看到如何在不使用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/配置文件。/etc/ssh/sshconfig和/etc/ssh/sshdconfig的区别系统级SSH配置项在/etc/ssh/ssh_config文件中,而系统级SSH服务器配置项存放在/etc/ssh/sshd_config文件。~/.ssh/config文件中配置项的语法~/.ssh/config文件内容的语法:配置项值configurationitemvalue1value2示例1:为主机(www.linuxnix.com)创建一个SSH别名编辑~/.ssh/config文件写入如下内容:HosttljUserrootHostName18.197.176.13port22保存这个文件。上面的ssh别名使用tlj作为别名root作为用户将登录18.197.176.13作为主机的IP地址22作为端口访问SSH服务输出:sanne@Surendras-MacBook-Pro:~>sshtlj欢迎使用Ubuntu16.04。3LTS(GNU/Linux4.4.0-93-genericx86_64)*文档:https://help.ubuntu.com*管理:https://landscape.canonical.com*支持:https://ubuntu.com/advantage通过UbuntuAdvantageCloudGuest获得云支持:http://www.ubuntu.com/business/services/cloudLast登录:2017年10月14日星期六01:00:43从20.244.25.231root@linuxnix:~#exitlogoutConnection到18.197。176.13关闭。示例2:使用IdentityFile以sshkey免密码登录系统。示例:主机aws用户ec2-users主机名ec2-54-200-184-202.us-west-2.compute.amazonaws.comIdentityFile~/Downloads/surendra.pemport22示例3:对同一主机使用不同的别名.在下面的示例中,对于同一IP/主机18.197.176.13,我们有三个别名tlj、linuxnix、linuxnix.com。~/.ssh/config文件内容Hosttljlinuxnixlinuxnix.comUserrootHostName18.197.176.13port22输入:sanne@Surendras-MacBook-Pro:~>sshtljWelcometoUbuntu16.04.3LTS(GNU/Linux4.4.0-93-genericx86_64)*文档:https://help.ubuntu.com*管理:https://landscape.canonical.com*支持:https://ubuntu.com/advantage通过UbuntuAdvantageCloudGuest获取云支持:http://www.ubuntu.com/business/services/cloudLastlogin:SatOct1401:00:432017from220.244.205.231root@linuxnix:~#exitlogoutConnectionto18.197.176.13closed.sanne@Surendras-MacBook-Pro:~>sshlinuxnix.com欢迎使用Ubuntu16.04.3LTS(GNU/Linux4.4.0-93-genericx86_64)*文档:https://help.ubuntu.com*管理:https://landscape.canonical.com*支持:https://ubuntu.com/advantage通过UbuntuAdvantageCloudGuest获得云支持:http://www.ubuntu.com/business/services/cloud最后登录:2017年10月15日20:31:08,来自1.129.110.13root@linuxnix:~#exitlogoutCon连接到138.197.176.103已关闭。[6571]sanne@Surendras-MacBook-Pro:~>sshlinuxnix欢迎使用Ubuntu16.04.3LTS(GNU/Linux4.4.0-93-genericx86_64)*文档:https://help。ubuntu.com*管理:https://landscape.canonical.com*支持:https://ubuntu.com/advantage通过UbuntuAdvantageCloudGuest获取云支持:http://www.ubuntu.com/business/services/cloudLast登录:SunOct1520:31:202017from1.129.110.13root@linuxnix:~#exitlogoutConnectionto18.197.176.13closed.示例4:使用相同的SSH别名将文件复制到远程系统语法:scp:示例:sanne@Surendras-MacBook-Pro:~>scpabc.txttlj:/tmpabc。txt100%12KB11.7KB/s00:01sanne@Surendras-MacBook-Pro:~>如果我们已经为ssh主机设置了别名,由于ssh和scp使用几乎相同的语法和选项,scp也可以使用方便,请尝试从本地机器scp文件到下面的远程机器。示例5:Linux中的SSH超时故障排除。默认情况下,如果您没有主动使用终端,您的ssh登录将超时。SSH超时问题是比较痛苦的问题之一,这意味着您必须在一段时间后重新登录到远程机器。我们可以在~/.ssh/config文件中正确设置SSH超时,这样无论一天中的什么时间,您的会话始终处于活动状态。我们将使用2个使会话保持活动状态的SSH选项来执行此操作。一个是ServerAliveInterval(保持会话活动的秒数)和ServerAliveCountMax(在给定数量的会话后初始化会话)。ServerAliveIntervalAServerAliveCountMax示例B:Hosttljlinuxnixlinuxnix.com用户rootHostName18.197.176.13port22ServerAliveInterval60ServerAliveCountMax30我们将在下一部分看到一些其他的退出方法。