作为系统管理员,你跟多个远程系统定期维护操作。你需要你在工作期间多次使用SSH系统。许多远程Linux服务器你必须通过密码访问其中的许多你必须通过专用key访问。因此,这可以更典型方便的方法管理他们。
本文将帮助你正确使用密钥文件整理您的SSH服务器的详细信息。
配置文件语法:
我们可以添加多个SSH主机细节
~/.ssh/config
文件。用你喜欢的编辑器,比如vi,vim 或 nano 编辑配置文件。
$ vi ~/.ssh/config
语法如下:
Host <NICK_NAME>
HostName <IP ADDRESS OF REMOTE>
IdentityFile <PATH TO PRIVATE FILE>
User <LOGIN AS USERNAME>
Port <SSH PORT TO USE>
LocalForward <LOCAL PORT> <REMOTE_LOCATION:PORT>
1. 添加第一个SSH主机
例如,我们有我们的第一个SSH主机正在运行,详情昵称为php-web1,用户root,22端口,并通过密码访问的PHP开发的Web服务器。添加配置文件内容如下。
Host php-web1
HostName 192.168.1.100
User root
现在尝试SSH如下命令。
$ ssh php-web1
2. 添加第二个SSH主机
我们的第二个主机服务器(php-web2)是SSH密钥对,使用用户root 默认端口22 上访问添加配置文件内容如下。
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到远程服务器(php-db1)主机端口3306。添加配置文件内容如下。
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 root
Host php-web2
HostName 192.168.1.101
IdentityFile ~/.ssh/php-web2.pem
User root
Host php-db1
HostName 192.168.1.110
Port 2222
IdentityFile ~/.ssh/php-db1.pem
User ubuntu
Host php-db1-mysql-tunnel
HostName 192.168.1.110
Port 2222
IdentityFile ~/.ssh/php-db1.pem
LocalForward 3306 127.0.0.1:3306