일부 시스코 장치를 관리하기 위해 노드를 사용하고 있으며 최근 이틀 동안 해결할 수 없었던 문제가 발생했습니다.node.js ssh2shell wrapper가 시스코 장치에 로그인하지 못했습니다.
SSH2 모듈을 사용하여 Cisco 장비에서 명령을 실행하고 실행할 수 있지만 한 번에 하나의 명령 만 실행하도록 제한하고 있습니다. 후속 명령의 경우 새 연결을 설정 한 다음 다른 명령을 실행해야합니다. 이것은 내 필요에 맞지 않습니다.
일부 답변을 읽고 SSH2 용 SSH2Shell 래퍼를 사용하여 여러 명령을 순차적으로 실행할 수 있으므로 시작했습니다. 하지만 SSH2Shell을 사용하면 클라이언트에서 제공하는 암호가 서버에서 지원되는 암호와 일치하지 않기 때문에 시스코 장치에 연결할 수 없습니다. SSH2 모듈에도 동일한 문제가 있었지만 Cipher와 KEX를 추가하여 해결할 수있었습니다. SSh2Shell에서 동일한 작업을 수행하면 작동하지 않습니다. 여러 다른 방법으로 다른 장소에 추가하려고 시도했지만 연결되지 않습니다.
나는 올바른 길을 가고 있다고 생각하는데, 나는 Ciphers와 KEX를 추가 할 적절한 위치를 모른다. 난이 실행할 때 단말기에 '폐쇄'다음 '접속'얻을
var host = {
server: {
host: "<host IP>",
port: "22",
userName: "<username>",
password: "<password>"
},
connection: require ('ssh2'),
commands: [
"show version",
"show ssh"
],
algorithms: {
kex: [
'diffie-hellman-group1-sha1',
'ecdh-sha2-nistp256',
'ecdh-sha2-nistp384',
'ecdh-sha2-nistp521',
'diffie-hellman-group-exchange-sha256',
'diffie-hellman-group14-sha1'],
cipher: [
'aes128-ctr',
'aes192-ctr',
'aes256-ctr',
'aes128-gcm',
'[email protected]',
'aes256-gcm',
'[email protected]',
'aes256-cbc'
]
},
msg: {
send: function(message) {
console.log("message: " + message);
}
},
verbose: true,
debug: true,
idleTimeOut: 15000,
connectedMessage: "connected",
readyMessage: "ready",
closedMessage: "closed",
onCommandComplete: function(command, response, sshObj) {
console.log("------------- onCommandComplete ---------");
console.log(command + ": " + response);
},
onEnd: function(sessionText, sshObj) {
console.log("--------- onEnd has ------------");
console.log(sessionText);
}
};
//Create a new instance
var SSH2Shell = require ('ssh2shell'),
SSH = new SSH2Shell(host);
//Start the process
SSH.connect();
:
여기 SSH2Shell 내 코드이다. 시스코 라우터에서 디버깅 내 암호가 일치하지 않는 것을 보여줍니다.
8 22 22 12:06:59 % SSH-3-NO_MATCH : 일치하는 암호가 없습니다. 클라이언트 aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm, aes128-gcm @ openssh.com, aes256 -gcm, AES256-GCM @ openssh.com 서버 AES128-CBC, 3DES-CBC, AES192-CBC, AES256-CBC
감사합니다. mscdex. 내가 할게. – Pankaj