ルーターの背後にあるマシンで SSH サーバーを生成しようとしています。
まず、SSH をパブリック IP アドレスにバインドしようとしました。
ssh -R 10002:localhost:22 <ip_address>
次に、パスワード要求が表示されますが、ユーザー名のパスワードが機能していないようです。
明らかに、ユーザー名のパスワードを知っているので、同じネットワーク内の別のコンピューターで認証しようとしているようです。
これを修正する方法はありますか?
また、ルーターにアクセスできない場合に、ルーターの背後に SSH サーバーを作成する方法の代替手段にも役立ちます。
iptables のポートはすべて開いています。
アップデート
Thomas Osterの回答で示唆されているように、私は次のことを試しました。
ルーターの背後にあるマシンで、次のコマンドを実行しました。
$ ssh -R10002:localhost:22 <remote_public_ip_address> -l <my_remote_server_username>
<remote_ip_address>
私が完全に制御できるパブリックIPおよびSSHサーバーを持つサーバーのremote_ip_addressです。
<my_remote_server_username>
リモートサーバーのユーザー名です。
その後、次のようにリモートサーバーからルーターの背後にあるサーバーに接続しようとしました:
$ ssh -p 10002 <remote_public_ip_address>
ただし、このコマンドは次の出力を表示します。
ssh: connect to host <remote_public_ip_address> port 10002: Connection refused
そこで、次のコマンドを使用して、iptables ファイアウォールで 10002 ポートを開きました。
sudo iptables -A INPUT -p tcp --dport 10002 -j ACCEPT
その後、コマンドを再度実行しましたが、同じエラー メッセージが表示されます。
ルーターの背後にある私のマシンでは、iptables ですべてのポートを開いています。
更新 2
remove_public_ip_address サーバーの /etc/ssh/sshd_config でポート転送を許可する必要があります
次のコマンドを追加して、sshd_config ファイルでポート転送を許可しようとしました。
LocalForward 10002 <my_remote_public_server_ip>:22
しかし、それは私にこのエラーメッセージを与えました:
Bad configuration option: LocalForward
「ssh -R....」の後、ウィンドウを開いたままにしましたか?
そのコマンドを実行した後、リモートのパブリック マシンに接続します。はい、ウィンドウを開いたままにしました。
トンネルが作成された後、公開サーバーで ssh -p 10002 localhost を使用できますか?
はい、公開サーバーでそのコマンドを実行すると、資格情報の入力を求められた後に接続されます。
ルーターの背後にあるマシンで「ssh localhost」を試して、sshd が実行され、機能しているかどうかを確認してください。
これも機能します。
更新 3
私はついにそれを機能させることができました (再びThomas Osterに感謝します)
次の 3 つのマシンで作業します。
宛先マシン: 接続したいマシン。
中間マシン: 接続の仲介者として機能するサーバー (私の場合は Linode)
ホーム コンピューター: 宛先マシンにアクセスする場所。
これらは私が従った手順です
ステップ1:
[destination computer]$ vi /etc/ssh/sshd_config
GatewayPorts オプションを追加します。
はい
ssh を再起動します。
ステップ2:
[destination computer]$ ssh -R 4040:localhost:22 middle-machine-user@middle-machine-public-ip
これにより、ポート 4040 経由でパブリック マシンが宛先コンピューターにリンクされます。
中間マシンに接続し、ターミナルにプロンプトを表示します。このタブは開いたままにしておく必要があります。
ステップ 3:
自宅から接続:
ssh destination-user@destination-ip -p4040
または、中間マシンから接続します。
[home computer]$ ssh middle-machine-user@middle-machine-ip
[middle computer]$ ssh destination-user@localhost -p4040