来自 技术 2019-03-16 00:00 的文章

管理ssh主机和私钥的最佳方法

作为系统管理员,定期处理多个远程系统。需要在工作期间多次使用ssh系统。许多远程Linux服务器都是通过密码访问的,其中许多是通过私钥访问的。因此,这对于管理所有这些内容来说更为典型。本篇文章将给大家介绍关于使用密钥文件正确组织ssh服务器详细信息。

配置文件语法:

我们可以将多个ssh主机详细信息添加到~/.ssh/config 文件中。在你最喜欢的编辑器(如vi、vim或nano)中编辑配置文件。

$ vi~/.ssh/config

语法如下所示:

Host<NICK_NAME> HostName<IP地址远程> IdentityFile <PATH TO私有文件> User<LOGIN AS USERNAME> Port<SSH要使用的端口> LocalForward <本地端口> <REMOTE_LOCATION:PORT>

1、添加第一个SSH主机

例如,我们的第一个ssh主机正在运行一个php开发Web服务器,其详细信息名称为php-web1,用户root,端口22,并且可以通过密码访问。在配置文件中添加以下内容。

Host php-web1 HostName 192.168.1.100 User root

现在尝试使用SSH作为以下命令。

$ ssh php-web1

2、添加第二个SSH主机

我们的第二个主机服务器(php-web2)可以使用默认端口22上的用户root的ssh密钥对访问。在配置文件中添加以下内容。

Host php-web2 HostName 192.168.1.101 IdentityFile ~/.ssh/php-web2.pem User root

现在尝试使用SSH作为以下命令。

$ ssh php-web2

3、添加第三个SSH主机

我们的第三个ssh主机服务器(php-db1)在端口2222上运行,可通过用户ubuntu的密钥对访问。在配置文件中添加以下内容。

Host php-db1 HostName 192.168.1.110 Port 2222 IdentityFile ~/.ssh/php-db1.pem User ubuntu

现在尝试使用SSH作为以下命令。

$ ssh php-db1

4.使用SSH进行设置转发

在此设置中,我们需要将本地系统端口3306转发到端口3306上的远程服务器(php-db1)主机。在配置文件中添加以下内容。

Host php-db1-mysql-tunnel HostName 192.168.1.110 Port 2222 IdentityFile ~/.ssh/php-db1.pem LocalForward 3306 127.0.0.1:3306

现在尝试使用SSH作为以下命令。

$ ssh php-db1-mysql-tunnel

最终配置文件

最终配置文件~/.ssh/config 如下所示。

Host php-web1 HostName 192.168.1.100 User rootHost php-web2 HostName 192.168.1.101 IdentityFile ~/.ssh/php-web2.pem User rootHost php-db1 HostName 192.168.1.110 Port 2222 IdentityFile ~/.ssh/php-db1.pem User ubuntuHost php-db1-mysql-tunnel HostName 192.168.1.110 Port 2222 IdentityFile ~/.ssh/php-db1.pem LocalForward 3306 127.0.0.1:3306