2017-04-16 8 views
1

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). 

だから私は間違っていますか?私は証明書、秘密鍵ファイルについて考えていません...どんな助けも高く評価されます。

答えて

1

私はfreeFTPdでの経験を持っていないが、問題はここと同じである場合、私は疑問に思う:リンクからhttp://www.sitecorelessons.com/2014/03/how-to-upload-file-via-sftp-using.html

を:「注意: - あなたの秘密鍵はSshNetと互換性がなければならないいずれかを変換します。私の他の記事「SFTPサーバに接続するための秘密鍵をOpenSSH鍵に変換する方法」を参照してください。 freeFTPdサイトは、あなたが求めている質問のタイプのために特別にforumsを持っている場合

あなたは間違って何をやっているかもしれ
0

はここに求めています。これらのフォーラムの外では、あなたが使用しているクライアントの種類をデバッグするための最良の方法は、まず、それが動作することを確認し、(例えばLinuxのSSHDなど)の人気、よくサポートするサーバアプリケーションに対してそれを試し、その後、試してみることですそれは動作に違いがあるかどうかを知るために、あまり知られていない製品との比較です。あなたの参照されているfreeFTPdのような実装は十数万になります。そして、おそらく、ここの人々がそのような製品で何をすべきかを知っていると仮定することはおそらくあまり安全ではありません。

関連する問題