Visual Studio 2008および.NET Framework 3.5にはC#コンソールアプリケーションがあります。SSH.NET(アクセス許可が拒否されている(公開鍵))を使用しているキーファイルを使用したSFTPへの接続
テスト目的で、ローカルマシンにFTPサーバーをインストールして構成しました。私はダウンロードし、この無料の小さなFTPサーバーをインストールしました:freeFTPd。それは本当に簡単です、それは私に約10分かかります。
これを設定したら、私はC#コンソールアプリケーションを使ってPasswordA認証メソッドを使って正常に接続しました。
今、キーベースのファイルのみを使用してローカルFTPサーバーに接続しようとしています。あなたは上記のコードで見ることができるように、私はプライベートキーファイルとして
var keyFile = new PrivateKeyFile(@"C:\Program Files (x86)\freeFTPd\freeftpd.key");
var keyFiles = new[] { keyFile };
var methods = new List<AuthenticationMethod>();
methods.Add(new PrivateKeyAuthenticationMethod(username, keyFiles));
var con = new ConnectionInfo(host, port, username, methods.ToArray());
using (SftpClient client = new SftpClient(con))
{
client.Connect();
// Do some stuff below
}
freeftpd.key使用しています:
は、だから私は実装したコードは次のようです。このファイルは、freeFTPdがインストールされると作成されました。インストール中、freeFTPdは私に新しい秘密鍵ファイルを作成するように頼んだので、「はい」と答えました。今は使用していますが、このプライベートキーファイルを使用して自分のFTPローカルサーバーに接続できるという問題があります。私は、このファイルを開いて、それが次の行で始まります:----- BEGIN RSA PRIVATE KEY -----
をで終わる:
----- END RSAプライベートキー-----
以下には、暗号化されたデータがたくさんあります。
このファイルはこの行で始まる必要があります。
とにかく私のFTPサーバーに接続できません。
freeFTPdコントロールパネルから、SFTPのセクションでは、RSAキーとDSAキー(長さが512,1024、または2048ビット)を作成できます。これらのファイルはRSAKey.cfgとDSAKey.cfgとして生成され、その内容はfreeFTPdのインストールプロセス中に生成された秘密鍵ファイル 'freeftpd.key'に似ています。私がRSAKey.cfgまたはfreeFTPdから作成したばかりの他のものを使用していると、動作しません。表示されるエラーメッセージは次のとおりです。
Permission denied (publickey).
だから私は間違っていますか?私は証明書、秘密鍵ファイルについて考えていません...どんな助けも高く評価されます。