1

固有の問題に直面していますが、解決方法がわかりません。サーバーとの接続に Netsiebin SSH C++ ライブラリを使用しています。それは完全にうまく機能します。SSH2プロトコルを使用してリモートホストに接続し、公開鍵認証を使用して、サーバーでも実行するコマンドを送信しました。

しかし、問題は、SCP または rsync "system( scp または rsync ) の使用を開始したときに発生します。その間にいくつかのファイルをサーバーにアップロードし、Netseiben SSH 関数を再度実行してそのコマンド ファイルをサーバーで実行する必要があります。しかし、これはscp または rsync コマンドを使用してから netseiben 関数を実行すると、常に待機し続けて戻りません。

実装例:

  1. 網精弁の初期化

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
  1. サーバーにファイルを配置するシステム機能(これがすべての原因だと思います)

    system( "rsync /home/user/Makefile user@server:~"); system( "scp /home/user/file.tgz user@server:~/new");// これが実行されます

  2. come コマンドをサーバーに送信します (ここで失敗します ...このステートメントは実行されません)

    ssh->send ("mkdir Tester\n", channel1)

いくつかのコマンドを実行するための上記の「システム」機能がない場合、正常に動作します。

Port number と関係がありますか。接続の確立時にポート番号 22 を指定し、間違っていなければ scp がポートと同じポートを介して発生し、問題が発生する可能性があるためです。わかりませんが。これで1日設定されています。ご協力いただきありがとうございます 。

4

0 に答える 0