1

ローカル ネットワークからアクセスできないホスト A があります。しかし、SSH経由でアクセスできるホストBがあり、AはBから見えるので、SSHトンネルをセットアップし、B経由でAにアクセスしようとします

ssh -N -D 7070 username@HOST_B

私の ~/.ssh/config は次のようになります

host HOST_A
    ProxyCommand socat - PROXY:127.0.0.1:7070:%h:%p,proxyport=7070

次のコマンドを実行すると

ssh -v username@HOST_A

次のエラーが発生しました。

debug1: identity file /Users/leo/.ssh/id_rsa type -1
debug1: permanently_drop_suid: 501
debug1: identity file /Users/leo/.ssh/id_rsa-cert type -1
debug1: identity file /Users/leo/.ssh/id_dsa type 2
debug1: identity file /Users/leo/.ssh/id_dsa-cert type -1
2013/05/21 22:19:13 socat[4537] E proxy_connect: connection closed by proxy
ssh_exchange_identification: Connection closed by remote host

私のマシンには /etc/hosts.allow または /etc/hosts.deny がありません。私はMac OSを使用しています。

4

1 に答える 1

2

HTTP プロキシへの接続を要求socatしていますが、設定した ssh トンネルは SOCKS プロキシです。SOCKSsocatプロキシに接続するように指示します。

host HOST_A
    ProxyCommand socat - SOCKS4:127.0.0.1:7070:%h:%p,proxyport=7070

(他の SOCKS オプションが利用できる場合があります ---man socatインストールした特定の socat を確認してください。)

しかし、通常、事前に ssh トンネルをセットアップする必要はありません。通常の方法は、HOST_B で netcat を使用することです。

host HOST_A
    ProxyCommand /usr/bin/ssh username@HOST_B /bin/nc %h %p

(必要に応じて、パス名を ssh および netcat に変更します。)

demure のssh -t HOST_B ssh HOST_A方法も機能しますが、 で構成することはできません~/.ssh/config

于 2013-05-21T16:25:28.620 に答える