2017-05-10 4 views
-1

ネットワーク上の別のマシンをデバッグしたいが、そこに入るためには1つ以上のSSHトンネルを通過する必要がある。複数のSSHホップ間でトラフィックをリモートからキャプチャする方法は?

現在:

# SSH into one machine 
    ssh -p 22 [email protected]_ip -i ~/.ssh/00_id_rsa 

    # From there, SSH into the target machine 
    # Note that this private key lives on this machine 
    ssh -p 1234 [email protected]_ip -i ~/.ssh/01_id_rsa 

    # Capture debug traffic on the target machine 
    tcpdump -n -i eth0 -vvv -s 0 -XX -w tcpdump.pcap 

しかし、それは、連続的に.pcap出ていることをコピーするための痛みです。 wiresharkがインストールされているローカルマシンにpcapを直接書き込む方法はありますか?

答えて

1

ProxyCommandを使用してsshホストを連鎖させ、tcpdumpの出力をwiresharkに直接パイプする必要があります。

Host some_ip 
    IdentityFile ~/.ssh/00_id_rsa 

Host another_ip 
    Port 1234 
    ProxyCommand ssh -o 'ForwardAgent yes' some_ip 'ssh-add ~/.ssh/01_id_rsa && nc %h %p' 

私は完全なパスでこれをテストし、その

はあなたが

ssh another_ip "tcpdump -s0 -U -n -w - -i eth0 'not port 1234'" | wireshark -k -i - 
のようなものを使用する必要があり、ライブキャプチャを表示するには〜と気をつけなる:あなたは次のSSHの設定ファイルを作成する必要があることを実現するために、

pcap localyをダンプする場合は、stdoutを任意のファイル名にリダイレクトすることができます。

ssh another_ip "tcpdump -n -i eth0 -vvv -s 0 -XX -w -" > tcpdump.pcap 

も参照してください:

関連する問題