这是一种情况:
我所有的工作都在 Mac 上完成。
有一个特定的linux服务器'服务器01'提供对另一个Linux服务器的访问'服务器02' 通过伪终端
因此,要 ssh 进入 '服务器02',我在我的 Mac 上执行此操作:
ssh -t server01 'inline server02'
然后它要求我输入密码'服务器01';我输入它,然后我就登录到了'服务器02'。现在,我在'服务器02' 终端。
从 '服务器02'我可以访问所在的 mysql 数据库'服务器03' 使用以下 mysql 命令:
mysql --host=server03 --port=4201 --user=myuser --password=mypass mydb
两者都不 '服务器01'也不'服务器02'我的 Mac 也没有 SSH 访问权限'服务器03'
现在,我想访问 ' 上的 mysql服务器03' 直接从我的 Mac 通过某种端口转发。因此,如果我在 mac 终端上输入以下命令,它应该将我连接到 ' 上的 mysql 数据库服务器03':
mysql --host=localhost --port=4201 --user=myuser --password=mypass mydb
有没有办法做到这一点?任何帮助是极大的赞赏。
答案1
如果你可以从 server01 ssh 到 server02 你可以尝试
ssh -t -L server02:4201 server01 'ssh -N -L server03:4201 server02'
它将连锁连接
本地主机:4201 -> server02:4201 -> server03:4201
仅本地连接到端口4201在苹果电脑上
最好使用密钥身份验证和 ssh-agent 来避免输入密码。