使用 ssh 配置和 putty (或 cygwin) 的 ssh 多跳隧道 (两跳)

使用 ssh 配置和 putty (或 cygwin) 的 ssh 多跳隧道 (两跳)

我的环境

我有堡垒服务器、部署服务器、生产服务器、redis 服务器,我想使用 putty 转发 redis 服务器的端口。本地机器 -> 堡垒 -> 部署 -> 生产 -> redis:6379

堡垒

$cat /home/alpha/.ssh/config

Host deploy
    ForwardAgent yes
    Hostname deployment.alpha.co.kr
    User alpha
    Port 9922
    Identityfile ~/.ssh/alpha.pem

部署

在部署中,我将用户更改为beta并连接ssh prod-fe1

sudo -iu beta
ssh prod-fe1

以下是 ssh 配置 $cat /home/beta/.ssh/config

Host prod-fe*
    Hostname %h.prod.server.in
    User charles
    Port 9922
    IdentityFile ~/.ssh/id_rsa_charles

生产

在生产服务器中,我使用以下命令连接到 redis

redis://tf-redis-ro.abcde.ng.0001.apn2.cache.amazonaws.com:6379

我想做的事

我想在我的本地机器(windows,putty)上建立一个隧道来连接到redis!

本地机器 -> 堡垒 -> 部署 -> 生产 -> redis

我怎样才能做到这一点?

如果 putty 不是适用于上述复杂 ssh 配置的 ssh 多跳隧道的正确工具,您能否推荐给我合适的工具?

答案1

我成功解决了这个问题!下面是我的~/.ssh/config

Host bastion
  Hostname bastion.server.co.kr
  IdentityFile ~/.ssh/alpha.pem
  ForwardAgent yes
  User alpha
  Port 9922

Host deploy
  Hostname deployment.server.co.kr
  User alpha
  Port 9922
  IdentityFile ~/.ssh/alpha.pem
  ForwardAgent yes
  ProxyCommand ssh -W %h:%p bastion

Host prod-fe*
  Hostname %h.prod.server.in
  User charles
  Port 9922
  IdentityFile ~/.ssh/id_rsa_charles
  ProxyCommand ssh -W %h:%p deploy

使用上述配置,我使用以下命令打开 ssh 隧道

ssh -L 6379:tf-redis-ro.abcde.ng.0001.apn2.cache.amazonaws.com:6379 prod-fe1

相关内容