WinSCP .NET 어셈블리를 사용하여 SFTP 기반 응용 프로그램을 작성합니다.WinSCP .NET 어셈블리 연결에서 SSH 호스트 키 받기
누락 된 것 같은 '핵심'문제는 응용 프로그램이 SSH 키를 사용하여 연결된 호스트의 유효성을 검사 할 수있는 방법이 사용자가 제공하지 않는 한 나타나지 않는다는 것입니다.
우리가 알고있는 것처럼 이것은 일반적으로 발생하는 것이 아니므로 타사 프로그램을 사용하는 사용자가 그것을 얻지 않고도 SSH 키를 계속 사용하고 싶습니다.
연결하기 전에 설정해야 하나 : 당신은 키가 후자를 할 선택의 여지가 아직 무엇인지 모르는 경우
ConnectionOption.SshHostKeyFingerprint= SSHkeyString
또는
ConnectionOptions.GiveUpSecurityAndAcceptAnySshHostKey = True
을하고, 연결이 이루어진 후에 이것을 호출하여 SSH 호스트 키의 속성을 얻을 수 있다고 가정합니다.
MessageBox.Show(ConnectionOption.SshHostKeyFingerprint)
하지만 그 결과는 비어 있습니다.
.NET 커넥터에 대한 설명서를 검토 했으므로 연결된 서버의 SSH 키를 검색 할 수있는 방법이없는 것 같습니다.
이 기능이있는 것으로 보이는 라이브러리가 있지만 실제로 발견 된 라이브러리는 상업적으로 사용 허가되었습니다. 그 능력을 가진 일반 SSH 커넥터조차도 (FTP가 아님) SSH 키를 얻는 것만으로도 가능할 것이라고 생각합니다.
내 질문은
WinSCP .NET 어셈블리를 사용하여 연결된 서버에서 알 수없는 SSH 키를 검색하는 방법은 무엇입니까?
SSH 키를 검색 할 수있는 다른 라이브러리가 있습니까?
사용자가 키를 알고 있는지 어떻게 알 수 있습니까? –
[winSCP FAQ] (http://winscp.net/eng/docs/faq_script_hostkey)에서 설명한 것처럼 사용자는 처음 연결할 때까지 키를 얻을 수없는 경우가 종종 있습니다. 저는 이것이 가장 안전하지는 않지만 사용자가 그것을 모르기 때문에 호스트 키에 대한 검사를 완전히 비활성화하는 것이 아니라는 것을 이해합니다. 사용자는 향후 연결에서 변경되면 적어도 통지받을 수 있습니다. – TheOddPerson