如果你经常通过SSH访问许多不同的远程系统,这个技巧将为你节省一些时间,可以通过SSH为频繁访问的系统创建SSH别名,这样就不必记住所有不同的用户名、主机名、ssh端口号和IP地址等,此外,无论何时SSH到Linux服务器,都可以避免重复输入相同的用户名/主机名、IP地址、端口号。
在Linux中创建SSH别名 在我知道这个技巧之前,我通常使用以下任何一种方式通过SSH连接到远程系统,参考在Ubuntu 18.04系统中启用SSH登录的方法。 使用IP地址: $ ssh 192.168.225.22 或使用端口号,用户名和IP地址: $ ssh -p 22 sk@192.168.225.22 或者使用端口号,用户名和主机名: $ ssh -p 22 sk@server.example.com 说明: 1]、22是端口号。 2]、sk是远程系统的用户名。 3]、192.168.225.22是我的远程系统的IP。 4]、server.example.com是远程系统的主机名。 我相信大多数新手Linux用户和/或管理员都会以这种方式通过SSH连接到远程系统,但是,如果通过SSH连接到多个不同的系统,记住所有主机名/IP地址,除非你将其写在纸上或将其保存在文本文件中,否则用户名有点困难,可以通过为SSH连接创建别名(或快捷方式),可以轻松解决此问题,我们可以用两种方法为SSH命令创建别名。
方法一:使用SSH配置文件 这是我创建别名的首选方法。 我们可以使用SSH默认配置文件来创建SSH别名,为此,编辑~/.ssh/config文件(如果此文件不存在,只需创建一个): $ vi ~/.ssh/config 添加所有远程主机详细信息,如下所示: Host webserver HostName 192.168.225.22 User sk Host dns HostName server.example.com User root Host dhcp HostName 192.168.225.25 User ostechnix Port 2233
用自己的值替换主机、主机名、用户和端口的值,添加所有远程主机的详细信息后,保存并退出该文件。 现在可以通过命令SSH进入系统: $ ssh webserver $ ssh dns $ ssh dhcp 看看下面的截图,使用SSH别名访问远程系统:
如上图,我只使用别名(即webserver)来访问我的IP地址为192.168.225.22的远程系统。 请注意,这仅适用于当前用户,如果要为所有用户(系统范围)提供别名,请在/etc/ssh/ssh_config文件中添加以上行。 还可以在SSH配置文件中添加大量其他内容,例如,如果已配置基于SSH密钥的身份验证,请提及SSH密钥文件位置,参考在Ubuntu 18.04服务器上设置SSH双因素身份验证的方法,如下所示: Host ubuntu HostName 192.168.225.50 User senthil IdentityFIle ~/.ssh/id_rsa_remotesystem 确保已使用自己的主机名替换主机名,用户名和SSH密钥文件路径。 现在使用以下命令连接到远程服务器: $ ssh ubuntu 这样就可以使用别名快速访问它们。
方法二、使用Bash别名 这是创建SSH别名以加快通信速度的快捷方式,可以使用alias命令使此任务更容易,参考用alias命令实现节省时间的15个命令行别名应用。 打开~/.bashrc或~/.bash_profile文件: 像下面一样逐个为每个SSH连接添加别名: alias webserver='ssh sk@192.168.225.22' alias dns='ssh root@server.example.com' alias dhcp='ssh ostechnix@192.168.225.25 -p 2233' alias ubuntu='ssh senthil@192.168.225.50 -i ~/.ssh/id_rsa_remotesystem' 再次确保已使用自己的主机、主机名、端口号和IP地址替换,保存文件并退出。 然后,使用命令应用更改: $ source ~/.bashrc 或者: $ source ~/.bash_profile 在此方法中,不需要使用ssh alias-name命令,相反,只需使用别名,如下所示: $ webserver $ dns $ dhcp $ ubuntu
至此,目的达到。
总结 其实上面的这两种方法都非常简单,对于那些经常通过SSH连接到多个不同系统的人来说非常有用,使用适合你的任何一种方法,通过SSH快速访问远程Linux系统。
相关主题 |