web-dev-qa-db-ja.com

双方向SSHトンネルを確立するにはどうすればよいですか

SSHトンネルを介して次のことを行うことは可能ですか...

  1. ホスト1はリモートサーバーへのSSH接続を確立します
  2. リモートサーバーにログインして、ホスト1でSSH経由でコマンドを実行したい

Host-1は、直接アクセスできないデバイスです。 Host-1は、cronを介してリモートサーバーへのSSH接続を自動的に確立するように設定されています。 Host-1がリモートサーバーへのSSH接続を確立している間はいつでも、SSHを介してHost-1のメンテナンスを実行するために、リモートサーバーにログインしたいと思います。

可能であれば、これがどのように機能するかの例を探しています。

22
Barry

このような:

Host1$  ssh -N -R 8822:localhost:22 remote.Host.com

オプションの-Nは、「コマンドを実行しない」ことを示します(リモートシェルを置いたままにすることによって引き起こされる事故を防ぐのに役立ちます)。

これで、リモートから、次のようにHost1にSSHで接続できます(リモートポート8822はHost1に転送されますが、ループバックインターフェイス上でのみ転送されます)。

remote$ ssh -p 8822 localhost

追加のクレジットについては、export全世界への転送が可能で、リモートのポート8822を押すことで誰でもHost1にアクセスできます。(追加の最初のコロンに注意してください)

Host1$  ssh -N -R :8822:localhost:22 remote.Host.com
32