0
jsch 개인 키를 추가하려면 addIdentity()
을, SSH 터널을 열려면 getSession()
을 부릅니다.jsch로 SSH 터널을 열 때 유효하지 않은 개인 키
이 코드를 Windows 컴퓨터에서 로컬로 실행하면 터널 열기가 작동합니다.
그러나 우리의 CI에서 동일한 개인 키와 같은 코드는 다음과 같은 오류가 발생하는 것을 실행하는 경우 :
PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: imported-openssh-key
Public-Lines: 6
XXXXXXXXXXXXXXXXXXX
Private-Lines: 14
XXXXXXXXXXXXXXXXXX
Private-MAC: XXXXXXXXXXXXXXXX
하는 것은 오류 일 수 있습니다 무엇 :
2016-12-07 01:01:32 ERROR SSHConnector:25 - invalid privatekey: [[email protected]
com.jcraft.jsch.JSchException: invalid privatekey: [[email protected]
at com.jcraft.jsch.KeyPair.load(KeyPair.java:747)
at com.jcraft.jsch.KeyPair.load(KeyPair.java:561)
at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:40)
at com.jcraft.jsch.JSch.addIdentity(JSch.java:408)
at com.jcraft.jsch.JSch.addIdentity(JSch.java:389)
개인 키는 다음과 같이 보입니다 이리?
적어도 0.1.53에서 (그리고 나는 이것이 제거 될 것 같지 않음) PPK (OpenSSL PEMs = non-newfmt OpenSSH 및 몇 가지 다른 것들) 이외에 ** 오직 Windows-type EOL ** (CR LF). 해롤드 : 편집자 나 FTP TYPE A에 붙여 넣기와 같은 EOL을 변경할 수있는 방법으로 영향을받는 시스템에 PPK를 복사 했습니까? –
jsch는 실제로 PPK 파일을 지원하지만 @ dave_thompson_085는 CRLF로 표시된 줄 끝이 있어야한다고 지적했습니다. Dave, 의견을 대답으로 변환하여 올바른 것으로 틱 할 수 있습니다. –