1

WinSCP .NET アセンブリを使用して SFTP ベースのアプリケーションを構築しています。

私が見逃していると思われる「キー」の 1 つは、ユーザーが提供できない限り、SSH キーを使用して接続先のホストをアプリケーションが検証する方法がないように見えることです。

私たちが知っているように、これは通常は当てはまらないため、ユーザーがサードパーティのプログラムを使用して取得することなく、SSH キーを引き続き使用したいと考えています。

接続を確立する前に、次のいずれかを設定する必要があります。

ConnectionOption.SshHostKeyFingerprint= SSHkeyString

また

ConnectionOptions.GiveUpSecurityAndAcceptAnySshHostKey = True

キーが何であるかわからない場合は、後者を実行する選択肢がありません。接続が確立された後にこれを呼び出すことで、SSH ホスト キーのプロパティを取得できると思います。

MessageBox.Show(ConnectionOption.SshHostKeyFingerprint)

しかし、それは空の結果を返します。

.NET コネクタのドキュメントを調べましたが、接続しているサーバーの SSH キーを取得する方法がないようです。

この機能を備えているように見えるライブラリが他にもいくつかあるようですが、私が見つけたものは商用ライセンスです。その機能を備えた通常のSSHコネクタ(ftpなし)でさえ、SSHキーを取得するためだけに機能すると思います。

私の質問は
、WinSCP .NET アセンブリを使用して、接続されたサーバーから不明な SSH キーを取得する方法です。
または
、上記の SSH キーを取得できる別の無料で利用できるライブラリはありますか?

4

1 に答える 1

2

Session.ScanFingerprintこのメソッドを使用して、インタラクティブなホスト キー検証を実装できます。

SSH ホスト キー キャッシュの実装 (既知のホスト) の C# と PowerShell の例があります。
VB.NET を使用して再実装することは難しくありません。

于 2015-01-20T08:13:30.947 に答える