通过伪终端进行ssh端口转发

通过伪终端进行ssh端口转发

这是一种情况:

我所有的工作都在 Mac 上完成。

  1. 有一个特定的linux服务器'服务器01'提供对另一个Linux服务器的访问'服务器02' 通过伪终端

    因此,要 ssh 进入 '服务器02',我在我的 Mac 上执行此操作:

    ssh -t server01 'inline server02'
    
  2. 然后它要求我输入密码'服务器01';我输入它,然后我就登录到了'服务器02'。现在,我在'服务器02' 终端。

  3. 从 '服务器02'我可以访问所在的 mysql 数据库'服务器03' 使用以下 mysql 命令:

    mysql --host=server03 --port=4201 --user=myuser --password=mypass mydb
    
  4. 两者都不 '服务器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 来避免输入密码。

相关内容