0

ncいくつかのファイアウォールテストをシミュレートするために2台のLinuxマシンを使用しています...リモートマシンでsshを実行してテストを実行します...sshこのようにスポーンすると、機能します...

ssh -i id_dsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
    -p 2224 root@a2-idf-lab nc -s 10.26.216.82 10.195.18.132 \
    21 < /var/log/messages

ただし、でどれだけを制御しようとする/var/log/messageshead -c 20 /var/log/messages、コマンドはハングしますが、理由がわかりません...

ssh -i id_dsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
    -p 2224 root@a2-idf-lab nc -s 10.26.216.82 10.195.18.132 \
    21 < head -c 20 /var/log/messages

私もこれを試しましたが、これ以上の成功はありませんでした...

ssh -i id_dsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
    -p 2224 root@a2-idf-lab nc -s 10.26.216.82 10.195.18.132 \
    21 < (head -c 20 /var/log/messages)

質問:2番目のコマンドがハングするのはなぜですか。また、必要なことをどのように実行できますか?

参考までに、これらの実験は、sshセッションで機能するCLIを私に与えることができれば...ボーナスポイントを送信cat /dev/urandom | base64 | head -c 20 -するための準備でした...ncnc

4

2 に答える 2

2

<シェルリダイレクトであり、コマンドを実行するのではなく、ファイルから読み取るように入力ストリームをリダイレクトします。試す:

head -c 20 /var/log/messages | ssh -i id_dsa -o UserKnownHostsFile=/dev/null \
  -o StrictHostKeyChecking=no \
  -p 2224 root@a2-idf-lab nc -s 10.26.216.82 10.195.18.132 21 

/var/log/messagesこれは、ローカルマシンからncリモートマシンにパイプします。/var/log/messagesリモートマシンでファイルを使用する場合は、コマンドを引用符で囲みます。

ssh -i id_dsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
  -p 2224 root@a2-idf-lab "head -c 20 /var/log/messages |\
     nc -s 10.26.216.82 10.195.18.132 21"
于 2012-10-29T00:40:02.533 に答える
0

head -n 20を使用してみてください。私の推測では、問題は最後にキャリッジリターンがないことです。

于 2012-10-29T00:37:52.443 に答える