본문 바로가기
C#

renci.sshnet PrivateKeyFile .ppk 파일읽기 오류

by 리틀홍콩 2023. 1. 27.
728x90

밴더사에서 기존 SFTP서버가 변경된다는 공지를 받고, 잘 돌아가고 있는 C#서버에서 호스트파일만 변경해서

반영해주었습니다.

 

그런데??!!!  윈도우 서비스가 계속 꺼진다.

 

 

뭔일이지? 서버만 변경된걸로 아는데,,,

 

로그를 찍어가면서 어디서 종료되는지 보다보니 아래 코드에서 뻑이난다.

 

var keyfilepath = "c:\keyFolder\conn_key"
var privateKey = new PrivateKeyFile(keyfilepath);

왜지??

 

키 파일 문제인가?

 

키파일은 conn_key.ppk 였습니다.

ppk파일은 사실 첨보긴했는데,

 

검색해보니 sftp 접속을 위해 쓴 rensi.sshnet 라이브러리에서 ppk파일을 지원안한다고 하네요.

역시 이미 선배님들이 답변까지 써준게 있네요.

 

SSH.NET does not support .ppk key files. You have to use PuTTYgen to convert the .ppk key to OpenSSH format.

https://stackoverflow.com/questions/43176931/authentication-with-ppk-key-in-ssh-net

 

Authentication with PPK key in SSH.NET

I'm creating a window service for downloading files from an SFTP server. For that I'm using Renci.SshNet , Renci.SshNet.Common and Renci.SshNet.Sftp . I have this code: String Host = "HostName"; ...

stackoverflow.com

 

그럼 그동안 어떻게 된건지는 사실 밝혀지진 않았습니다.(이미 SFTP로 ppk파일로 통신하고 있었는데...)

 

그래서 그럼 ppk파일을 pem으로 어떻게 바꾸는지도 찾아보니 금방 찾아집니다.

 

Windows - .ppk 파일을 .pem 파일로 변환

1. PuTTYgen을 시작합니다. Actions에서 Load를 선택한 다음 .ppk 파일로 이동하십시오.

2. .ppk 파일을 선택하고 열기를 선택합니다.

3. (선택 사항) Key passphrase를 입력하십시오. Confirm passphrase에 암호를 다시 입력하십시오.

참고: 암호는 필수는 아니지만 프라이빗 키를 무단 사용으로부터 보호하기 위한 보안 수단으로 지정해야 합니다. 암호를 사용하면 인스턴스에 로그인하거나 파일을 인스턴스에 복사하기 위해 사용자 개입이 필요하므로 자동화가 어려워집니다.

4. PuTTY 키 생성기의 상단 메뉴에서 Conversions, Export OpenSSH Key를 차례로 선택하십시오.

참고: 암호를 입력하지 않은 경우 PuTTYgen 경고가 표시됩니다. 예를 선택합니다.

5. 파일에 이름을 지정하고 확장명 .pem을 추가합니다.

6. 저장을 선택합니다.

 

https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-ppk-pem-conversion/

 

.pem 파일을 .ppk로 변환하거나 .ppk 파일을 .pem으로 변환

Windows와 Linux에서.pem 파일을.ppk로 변환하거나.pkk을 .pem으로 변환하려면 어떻게 해야 하나요? 최종 업데이트 날짜: 2023년 1월 20일 Amazon Elastic Compute Cloud(Amazon EC2) Privacy Enhanced Mail(.pem) 파일을 PuTTY

aws.amazon.com

 

위 내용대로 실행하고, 파일을 해당위치로 변경해서 지정해주니 끝!

 

안되면, 로그 찍으면서 디버깅하는수밖에 없네요.

 

다행이 해결🙏

'C#' 카테고리의 다른 글

FTP파일 이어받기(FTPClient)  (0) 2017.12.27
FTPClient Passive/Active  (0) 2017.01.23

댓글