管理SSH主机和私钥的最佳方法
时间:2019-05-19 01:25:36 来源:igfitidea点击:
作为系统管理员,我们经常要处理多个远程系统。
我们需要在工作期间多次SSH系统。
我们可以通过密码访问许多远程Linux服务器,其中许多可以通过私钥访问。
所以这是更典型的管理方式。
本文将正确地组织使用关键文件的ssh服务器细节。
配置文件语法:
我们可以向 ~/.ssh/config文件添加多个ssh主机信息。
编辑配置文件。
$ 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开发web服务器,其中名称为php-web1,用户名root,端口22,可以通过密码访问。
在配置文件中添加以下内容。
Host php-web1 HostName 192.168.1.100 User root
现在尝试使用SSH执行以下命令。
$ ssh php-web1
2. 添加第二台SSH主机
我们的第二台主机服务器(php-web2)可以通过用户根端口22上的ssh密钥对访问。
在配置文件中添加以下内容。
Host php-web2 HostName 192.168.1.101 IdentityFile ~/.ssh/php-web2.pem User root
执行以下命令
$ 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 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