2014-09-19 9 views
1

C# (.NET 어셈블리)을 사용하여 SFTP WinSCP 클라이언트를 개발 중입니다. 내 테스트 환경에서 나는 그것을 암호 인증으로 해냈다. 내 세션 옵션은 다음과 같습니다.SSH 공개 키 인증을 위해 .crt 파일을 사용하는 방법

// Setup session options 
SessionOptions sessionOptions = new SessionOptions { 
    Protocol = Protocol.Sftp, 
    HostName = "example.com", 
    UserName = "user", 
    Password = "mypassword", 
    SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" 
}; 

실제 환경에는 사용자 암호가 없습니다. 서버 관리자가 공개 키에 ".crt"확장명을 제공합니다.

공개 키를 사용하면 어떻게 프로그램을 변경할 수 있습니까? (SessionOptions)?

이 구현을 진행하기에 충분한 세부 정보가 있습니까? 확장에서 CRT 파일

enter image description here

+0

SFTP를 사용해야합니까? '.crt' 파일은 SSH (SFTP)가 아닌 TLS/SSL (그래서 TLS/SSL을 통한 FTPS = FTP)과 함께 사용되는 인증서처럼 보입니다. 또한 공개 키가 아닌 개인 키가 필요합니다 (단, '.crt'는 둘 다 포함 할 수 있습니다). 자신의 개인 키를 생성해야합니다. 관리자에게서 가져 오면 안됩니다. 또 다른 혼란은 인증에 사용되는 계정 인증서가 아닌 서버의 인증서 일 수 있습니다. –

+0

Martin 고맙습니다 ... SFTP 공개 키 인증을 수행하는 방법을 알려줄 수 있습니까? – Suravi

+0

아니오, 위의 질문 중 적어도 일부에 답하십시오. SFTP 공개 키 인증에 사용되는'.crt' 파일을 보지 못했습니다. 텍스트 편집기에서 파일을 열 때 어떤 모습입니까? 다른 클라이언트/도구를 사용하는 경우에도 관리자가 사용 방법에 관한 정보/문서를 얻었습니까? –

답변

1

미리보기,보고받은 파일의 크기는, 나는 그것이 인증서의 형태로 서버의 공개 키 믿습니다.

먼저 서버의 공개 키는 연결된 서버가 실제로 연결하려는 서버인지 확인하는 데만 사용할 수 있습니다. 즉, 진행중인 중간자 공격은 없습니다.

둘째, 키의 인증서 형식은 SSH와 함께 사용되지 않습니다. TLS/SSL과 함께 사용됩니다 (예 : FTPS (TLS/SSL을 통한 FTP) 또는 HTTPS).

나는 당신과 서버 관리자 사이에 큰 오해가 있다고 말할 수 있습니다.

자세한 내용을 보려면 SuperUser 또는 ServerFault으로 문의하십시오. 결국 프로그래밍 질문처럼 보이지 않습니다.

+0

Martin.using winSCP는 공개 키 인증에 어떤 방법이 있습니까? (암호없이). – Suravi

+0

물론, ['SessionOptions.SshPrivateKeyPath'] (http://winscp.net/eng/docs/library_sessionoptions)를 사용하십시오. 그러나이를 위해서는 먼저 SSH/SFTP 서버에 연결하고 있는지 확인해야하며 개인 키가 있어야하며 서버에 공개 키를 등록해야합니다. [SSH 공개 키 인증 설정] (http://winscp.net/eng/docs/guide_public_key) –

+0

Martin은 다음과 같이 공개 키 인증을 수행 할 수있는 방법을 제공합니다 .http : //winscp.net/eng/ docs/ssh # authentication_in_ssh – Suravi