OpenSSHを使用したSSHリレーサーバー


10

OpenSSHを使用して、ルータースイッチなどの他のSSH対応デバイスにリレーすることは可能ですか。これは、Linuxでカスタムアプリケーションを作成せずに実行できるものですか。

ありがとう

回答:


9

承知しました; SSHポート転送/トンネリングを使用するだけです。次のコマンドを使用して、「プロキシ」マシンへのssh接続を開始します。

ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
  • $PROXYHOST:SSHアクセスが可能なマシン
  • $REMOTEHOST:$ PROXYHOSTが接続できるマシンですが、接続できません。$PROXYHOSTマシンの参照に使用できるホスト名またはIPを使用します
  • $SSHPORT:sshdがリモートホストで待機しているポート。おそらく22
  • $LOCALPORT:ローカル送信ポートSSHがローカルマシンで開いており、ポート22に転送します $REMOTEHOST

トンネルを機能させ続けるには、その接続をそのままにしておきます。-Nコマンドに追加して、この接続がリモートシェルを起動しないようにし、後で誤って閉じないようにすることもできます。

トンネルが確立されたら、次の手順を実行します。

ssh -p $LOCALPORT localhost

これにより、$REMOTEHOSTのSSHポートに転送されるポートでローカルマシンへのSSH接続が試行されます。


3

クライアントの設定を更新する場合は、ゲートウェイボックスをプロキシとして使用するようにクライアントを設定できます。リレーボックスにはnetcatをインストールする必要があります。最良の結果を得るには、キーベースの認証を設定する必要があります。

これは、別のホストを介して接続するために.ssh / configで使用するものです。

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh username@ssh-relay-host "/bin/netcat -w 1 internal-ssh-host 22"

上記を使用すると、クライアントマシンからコマンドssh internal-ssh-host-proxyを実行できます。

プロキシSSHホストにOpenSSHクライアント5.4以降がインストールされている場合は、netcatは不要で、代わりに組み込みのnetcatモードを使用できます。

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh username@ssh-relay-host -W internal-ssh-host:22

申し訳ありませんが、これはOpenSSHを使用していません。netcatを使用してクライアントサーバーとサーバー間のリレーを行っていますか?
aHunter

OpenSSHを使用しており、ほぼすべての場所で利用できる非常に一般的なユーティリティを使用しています。純粋なsshではありませんが、私はそれを別注とは言いません。
Zoredache、2009年

いいえ、それは別注ではないことに同意しますが、OpenSSHを使用してリレーできるので、標準のsshクライアントとsshを使用してOpenSSHを実行するボックスに接続し、別のマシンまたは複数のマシンへのsshアクセスを自動的に提供できるかどうかを知りたいと思いました。おかげで
aHunter

1
@aHunter、記録のために、openssh 5.4に組み込まれた「netcatモード」があり、純粋なopenssh接続を提供します-blog.rootshell.be/2010/03/08/openssh-new-feature-netcat-mode外部ツールなし必要です。
Zoredache 2010年

3

提示された答えの中で、Zordacheは最高の総合的なソリューションです。ただし、後世のために、設定を編集せずにアドホックに接続するだけの場合は、-tフラグを使用して疑似端末を割り当て、リレーで直接sshを実行します。

ssh -t relay.example.com ssh internal.example.com

編集ファイルなしの最も簡単なソリューション
Kartoch

2

OpenSSHを使用して接続を自動的に転送できます。あなたには~/.ssh/authorized_keys、ファイル、あなたは、第二のマシンにSSHすることができた、実行するコマンドを指定することができます。

[ssh client] ----> [ssh relay server] ----> [ssh target server]
    you          modified authorized_keys      target machine

最終的に表示されるのPassword:は、リレーサーバー用とターゲットサーバー用の2つのプロンプトです。証明書を使用すると、いつでもこの動作を削除できます。


あなたはopensshでsshdをどのように設定しますか?
aHunter

[強制コマンド] [1]のセクションを参照してください[1] eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html
sybreon

これは素晴らしいアイデアです。私がやりたい最後のことは、ルートでファイアウォールの100個の個別のポートを開くことです。次に、冗長性のために繰り返します。これは、100個のsshキーを作成し、それぞれを独自のサーバーにリンクできることを示唆しています。これは、リレーサーバーを完全にロックダウンできることも示唆しています。これをVPNと呼ぶ人もいますが、見方は異なります。
Richard
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.