2012-12-21 27 views
5

Próbuję połączyć się z serwerem SFTP przy użyciu programu WinSCP w języku C#. To jest mój kod:"Brak dostępnych obsługiwanych metod uwierzytelniania" podczas łączenia się z SFTP przy użyciu WinSCP w języku C#

SessionOptions sessionOptions = new SessionOptions 
{ 
    Protocol = Protocol.Sftp, 
    HostName = "ip", 
    PortNumber = portNR, 
    UserName = "username", 
    Password = "", 
    SshHostKeyFingerprint = "fingerPrint", 
    SshPrivateKeyPath = "\\PrivateKey\\PrivateKey.ppk ", 
}; 

using (Session session = new Session()) 
{ 
    session.Open(sessionOptions); 
} 

Ale kiedy uruchomić aplikację i osiąga to jak

session.Open(sessionOptions); 

dostaję ten błąd:

Disconnected: No supported authentication methods available (server sent: publickey,gssapi-with-mic)

+0

Czy twój klucz jest chroniony hasłem? –

+0

tak, to jest. gdzie mogę ustawić hasło dla pliku ppk? – Lahib

+0

Zobacz odpowiedź. –

Odpowiedz

3

należy użyć klucza prywatnego bez hasła lub pageant, ponieważ klasy WinSCP C# nie obsługują ustawiania hasła dla klucza prywatnego.

+0

czy masz pomysł co jeszcze mogę użyć, co pozwala mi ustawić hasło pliku ppk? – Lahib

+2

Istnieje bezpłatna/otwarta biblioteka Councy BouncyCastle, powinny obsługiwać SFTP. Dostępna jest również komercyjna biblioteka SecureBlackbox, która zdecydowanie obsługuje SFTP i hasła klucza prywatnego. –

+0

Program WinSCP będzie obsługiwał dostarczanie hasła klucza prywatnego w zestawie .NET od wersji 5.6: http://winscp.net/tracker/show_bug.cgi?id=816 –