如何管理多个 SSH 连接

导读如果你使用多个ssh连接,管理和记住 IP 地址、用户名和密码、秘钥会有点困难。在本指南中,将学习使用 ssh 的配置文件,该文件存储 ssh 连接所需的所有信息。

创建配置文件并添加主机信息

每台基于 Linux / Unix 的机器都有一个 .ssh 文件夹,您可以在其中保存 ssh 密钥。在这个文件夹中,你可以创建一个名为 config 的文件,可以将所有远程机器的详细信息放在这个配置文件中。

现在使用以下命令在 .ssh 文件夹中创建一个配置文件,如果用户主目录中没有.ssh文件夹,需要创建一个。

[root@localhost ~]# mkdir ~/.ssh
[root@localhost ~]# touch ~/.ssh/config 

下面是一个简单的实例:

[root@localhost ~]# vim ~/.ssh/config 

Host mysql
  HostName 192.168.0.12
  Port 22
  User root
  IdentityFile ~/.ssh/common_pri_key
Host web
  HostName 192.168.43.137
  Port 5658
  User bob
Host node1
  HostName 192.168.43.131
  Port 22
  User root

如何管理多个 SSH 连接如何管理多个 SSH 连接


上面配置中,设置每台服务器的连接名称,连接地址,端口号,用户名,还可以指定秘钥文件。如果服务器没有域名,可以提供 IP 地址。

连接测试

现在已经设置了连接到远程机器所需的所有配置。现在需要连接,只需要使用ssh命令后面加上在配置文件中指定的Host名称即可连接。

[root@localhost ~]# ssh mysql

如何管理多个 SSH 连接如何管理多个 SSH 连接


因为Host mysql我已经提前设置好免密登录,所以不需要输入密码就可以连接了。

定义常用参数

如果需要管理大量服务器,并且所有服务器都具有相同的用户名和 ssh 密钥。在这种情况下,可以使用正则表达式定义一组公共参数。如下:

Host dev
  Hostname 192.168.43.137

Host web.node1

Host web.node2

Host *
  Port 4556
  User jordan
  IdentityFile ~/.ssh/jordan_privatekey

Host web*
  Port 4668
  User james
  IdentityFile ~/.ssh/james_privatekey

在上面的示例中 Host * 表示该块中描述的参数适用于全局的服务器。Host web* 该块中描述的参数适用于所有以 web 开头的主机定义。

Host部分指定的主机名称如果不能解析,可以在下面指定一个Hostname参数,并写入他的ip地址。如果Host指定的主机名称能被解析,可以不添加Hostname参数。

总结

本指南中我们学习了如何使用 ssh 的配置文件,该文件存储 ssh 连接所需的所有信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值