使用 ssh config 作为 ssh 代理轻松管理内网服务器

栏目: 服务器 · 发布时间: 5年前

内容简介:企业内部大部分服务器都只有内网,一般可以使用 NAT 方式正向代理访问公网资源。对于 Linux 来说一般通过 ssh 登录服务器,在没有公网 IP 的情况下可以修改 ssh config 配置文件,利用一台可以接入内网并具有公网 IP 的服务器作为代理或者称为 Tunnel 跳板机来管理,可以灵活定制访问规则并优化 ssh 参数让管理更加轻松。使用 ssh config 作为 ssh 代理轻松管理内网服务器2019 年 01 月 31 日 - 初稿

企业内部大部分服务器都只有内网,一般可以使用 NAT 方式正向代理访问公网资源。对于 Linux 来说一般通过 ssh 登录服务器,在没有公网 IP 的情况下可以修改 ssh config 配置文件,利用一台可以接入内网并具有公网 IP 的服务器作为代理或者称为 Tunnel 跳板机来管理,可以灵活定制访问规则并优化 ssh 参数让管理更加轻松。

使用 ssh config 作为 ssh 代理轻松管理内网服务器

更新历史

2019 年 01 月 31 日 - 初稿

阅读原文 - https://wsgzao.github.io/post/ssh-config/

扩展阅读

SSH CONFIG FILE - https://www.ssh.com/ssh/config/

ssh_config 的配置文件来源

man ssh_config

NAME
     ssh_config -- OpenSSH SSH client configuration files

DESCRIPTION
     ssh(1) obtains configuration data from the following sources in the following order:

           1.   command-line options
           2.   user's configuration file (~/.ssh/config)
           3.   system-wide configuration file (/etc/ssh/ssh_config)

ssh 程序可以从三个途径获取配置参数:

  1. 命令行选型,比如 -F configfile
  2. 用户配置文件,放置在 ~/.ssh/config
  3. 系统配置文件,放置在 /etc/ssh/ssh_config(区别于 /etc/ssh/sshd_config)

上面三个途径,前面的途径传入的参数可以覆盖后面的途径传入的参数(与 linux 里的大部分应用类似)。因为 / etc/ssh/ssh_config 会影响 ssh 全局的配置,因此如果想对多主机进行管理(不影响别人的情况下),可以考虑修改自己家目录下的~/.ssh/config 文件(~ 字符表示当前登录用户的家目录)。

ssh_config 配置文件实例

首先看一个配置文件的 demo,假设 8.8.8.8 是你可以直接登录的 Tunnel 公网跳板机,10.65.32.0 是需要管理的内网地址段

# cat ~/.ssh/config

StrictHostKeyChecking no
CheckHostIP no

Host 10.65.32.*
  HostName %h
  ProxyCommand ssh bastion_GOP_SG_NC_MAIN -W %h:%p
Host bastion_GOP_SG_NC_MAIN
  HostName 8.8.8.8
  port 22
  User wangao

Host 10.65.200.*
  HostName %h
  ProxyCommand ssh bastion_GOP_SG_MH_MAIN -W %h:%p
Host bastion_GOP_SG_MH_MAIN
  HostName 9.9.9.9
  port 22
  User wangao

CheckHostIP no

Directs ssh to additionally check the host IP address in the known_hosts file.

StrictHostKeyChecking no

Specifies if ssh should never automatically add host keys to the ~/.ssh/known_hosts file, and refuses to connect to hosts whose host key has changed.

Host 字段

Host 字段配置了登录别名,比如 ssh 10.65.32.1 表示使用别名为 10.65.32.1 的配置登录远端的服务器。这里需要注意的是,Host 是支持通配符的, * 代表 0~n 个非空白字符,? 代表一个非空白字符,! 表示例外通配

HostName 字段

指定远程主机名,可以直接使用 IP 地址。如果这个字段中包含 ‘%h’ ,则实际使用时会被命令行中的主机名替换。比如 demo 中如果设置 HostName %h,在运行 ssh 10.65.32.1 后,会把主机名解析为 10.65.32.1

User 字段

指定登录用户名

IdentityFile 字段

指定密钥认证使用的私钥文件路径。默认为 ~/.ssh/id_rsa。这个字段可以指定多个密钥文件(以 , 分开),在连接的过程中会依次尝试这些密钥文件。和 HostName 字段一样,值也可以直接指定参数代替:

Port 字段

指定远程主机端口号,默认为 22 。

%h,远程主机名

%p,远程端口


以上所述就是小编给大家介绍的《使用 ssh config 作为 ssh 代理轻松管理内网服务器》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

圈圈教你玩USB

圈圈教你玩USB

刘荣 / 2013-4 / 59.00元

通过U盘、USB鼠标、15SB键盘、USBMIDI键盘、USB转串口、自定义的USBHID设备和自定义的USB设备等几个具体的USB例子,一步步讲解USB设备及驱动程序和应用程序开发的详细过程和步骤。第9和10章介绍USBWDM驱动开发,并给出一个简单的USB驱动和USB上层过滤驱动的实例。第2版中新增4章内容,包括USB触摸屏设备、移植到AVR单片机和ARM微控制器上以及更多的USB设备的实现。......一起来看看 《圈圈教你玩USB》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换