创建配置文件并添加主机信息
每台基于 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
上面配置中,设置每台服务器的连接名称,连接地址,端口号,用户名,还可以指定秘钥文件。如果服务器没有域名,可以提供 IP 地址。
连接测试
现在已经设置了连接到远程机器所需的所有配置。现在需要连接,只需要使用ssh
命令后面加上在配置文件中指定的Host
名称即可连接。
[root@localhost ~]# ssh mysql
因为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
参数。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。