2016-07-30 2 views
0

'ssh2'모듈을 사용하여 ssh 서버에 연결하려고했지만 서버 암호가 ssh2 스트림 암호의 칩퍼와 일치하지 않습니다. 여기 는 SSH 세션 로그입니다 :ssh2-stream에 새 암호 추가

+LiveParser:DEBUG: Outgoing: Writing DISCONNECT (KEY_EXCHANGE_FAILED) 

+LiveParser:DEBUG: No matching Client->Server cipher 

+LiveParser:DEBUG: (remote) Client->Server ciphers: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc 

+LiveParser:DEBUG: (local) Client->Server ciphers: aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm,[email protected],aes256-gcm,[email protected] 

어떻게 내 응용 프로그램에 그 암호를 추가 할 수 있습니다?

답변

1

documentation for connect()에는 가능한 모든 연결 옵션이 표시됩니다. 그 중 하나 (ssh2 v0.5의 새로운 기능)는 algorithms 옵션입니다. 알고리즘 협상 중에 사용할 암호 목록을 다음과 같이 명시 적으로 설정할 수 있습니다.

conn.connect({ 
    // ... 
    algorithms: { 
    cipher: [ 
     'aes128-ctr', 
     'aes192-ctr', 
     'aes256-ctr', 
     'aes128-gcm', 
     '[email protected]', 
     'aes256-gcm', 
     '[email protected]', 
     'aes256-cbc' 
    ] 
    } 
}); 
+0

암호 알고리즘이란 무엇입니까? 이름 만 언급하면 ​​충분합니까 ?? – r0ck

+0

나는 당신이 무엇을 요구하고 있는지 잘 모르겠습니다. 내가 보여주는 예제는 서버에 연결할 때 사용할 암호의 기본 목록을 무시하는 방법입니다. 내 특정 예제에서는, 나는 단지 기본 목록을 가져 와서 귀하의 질문에 서버가 지원하는 더 나은 암호 중 하나를 추가했습니다. 이것은 더 나은 암호를 먼저 매치시키고 필요하다면'aes256-cbc'로 되돌아갑니다. – mscdex

+0

여기 'ssh2-stream'모듈의 지원되는 암호화 알고리즘 목록은 다음과 같습니다. aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm, aes128-gcm @ openssh.com, aes256-gcm, aes256-gcm @ openssh.com 'aes256-cbc'는 지원되지 않습니다. 이 암호의 알고리즘을 'ssh2-module'에 추가하는 방법을 묻습니다. 방금 GitHub에서 열었습니다. – r0ck