我的环境
我有堡垒服务器、部署服务器、生产服务器、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