固有の問題に直面していますが、解決方法がわかりません。サーバーとの接続に Netsiebin SSH C++ ライブラリを使用しています。それは完全にうまく機能します。SSH2プロトコルを使用してリモートホストに接続し、公開鍵認証を使用して、サーバーでも実行するコマンドを送信しました。
しかし、問題は、SCP または rsync "system( scp または rsync ) の使用を開始したときに発生します。その間にいくつかのファイルをサーバーにアップロードし、Netseiben SSH 関数を再度実行してそのコマンド ファイルをサーバーで実行する必要があります。しかし、これはscp または rsync コマンドを使用してから netseiben 関数を実行すると、常に待機し続けて戻りません。
実装例:
- 網精弁の初期化
Ne7SftpSubsystem _sftp; ne7ssh *_ssh = 新しい ne7ssh();
2.キーで接続
channel1 = _ssh->connectWithKey ("serverAddress", 22, "userame", "pub key path");
3. コマンドを送信し、結果を読み取る
_ssh->send ("ls\n", channel1))
_ssh->waitFor (channel1, "$", 5)
result = _ssh->read (channel1); //read result
サーバーにファイルを配置するシステム機能(これがすべての原因だと思います)
system( "rsync /home/user/Makefile user@server:~"); system( "scp /home/user/file.tgz user@server:~/new");// これが実行されます
come コマンドをサーバーに送信します (ここで失敗します ...このステートメントは実行されません)
ssh->send ("mkdir Tester\n", channel1)
いくつかのコマンドを実行するための上記の「システム」機能がない場合、正常に動作します。
Port number と関係がありますか。接続の確立時にポート番号 22 を指定し、間違っていなければ scp がポートと同じポートを介して発生し、問題が発生する可能性があるためです。わかりませんが。これで1日設定されています。ご協力いただきありがとうございます 。