2

パスフレーズ付きの公開鍵ファイルと秘密鍵ファイルを設定するにはどうすればよいですか。また、接続している sftp から送信された指紋を受け入れる必要があります。私は Tamir.SharpSsh ソースを使用しています。ソースに組み込むことは可能ですか?提案してください。

4

1 に答える 1

2

SSH.NETオープン ソース ライブラリを使用して SFTP を操作することに成功しました。フォルダーの作成、アップロードなどのコードについては、この要点を参照してください。

これは、キーファイル + パスフレーズで SFTP に接続するためのコードです。

    public void Connect(string host, int port, string user, string passPhrase, string privateKeyFilePath) {

        var keyFiles = new[] { new PrivateKeyFile(privateKeyFilePath, passPhrase) };

        var methods = new List<AuthenticationMethod>();
        methods.Add(new PasswordAuthenticationMethod(user, passPhrase));
        methods.Add(new PrivateKeyAuthenticationMethod(user, keyFiles));

        var con = new ConnectionInfo(host, port, user, methods.ToArray());
        var client = new SftpClient(con);
        client.Connect();

        // .....

        client.Disconnect();
    }

秘密鍵ファイル形式

秘密鍵ファイルは OpenSSH 形式である必要があることに注意してください。Notepad++ でキー ファイルを開く場合、最初の行に「BEGIN RSA PRIVATE KEY」が必要です。

そうでない場合は、puttygen を使用して秘密鍵ファイルを OpenSSH 形式に変換します。

  1. puttygen で秘密鍵を開きます
  2. [変換] メニューに移動し、[OpenSSH キーのエクスポート] を選択します。
  3. その新しいキーをファイルに保存して使用します。
于 2017-01-30T09:11:59.027 に答える