简单的SSH代理如何实现

发布时间 2023-12-14 11:59:15作者: 厚礼蝎

需求场景

如上图所示

只有 主机A 可以访问 目标主机, 主机B 或者其他外来主机都是无法访问目标主机的,而 主机B 是可以访问 主机A

造成这种问题的原因有很多中,例如 防火墙设置了策略

现在无法对目标主机的防火墙做策略更改,那要如何实现 主机B 对 目标主机 的ssh远程登录呢

解决办法

做ssh代理,通过主机A,访问目标主机

配置

前提

各个主机都需要安装openssl

主机B需要配置基于key的免密访问主机A

主机B配置

# 生成密钥
ssh-keygen

# copy公钥给主机A的admin用户
ssh-copy-id admin@10.0.0.2

ssh 方面的配置

在当前用户下的 .ssh 目录下创建 config 文件

vim .ssh/config

# 下面两个IP都是目标主机的IP
Host 192.168.1.2
HostName 192.168.1.2
# user也是目标主机的user
User root
# 端口是目标主机的端口
Port 22
# 下面是通过主机A的admin用户代理ssh命令
ProxyCommand ssh -q admin@10.0.0.2 -W [%h]:%p

多个IP就配置多组就好了

然后尝试使用ssh连接目标主机,就可以正常访问了