私はいくつかのシスコデバイスを管理するためにnodeを使用しています。私は過去2日間で解決できなかった問題にぶつかっています。node.js ssh2shellラッパーがciscoデバイスへのログインに失敗しました
SSH2モジュールを使用すると、Ciscoギアでコマンドを接続して実行できますが、これは一度に1つのコマンドだけを実行するように制限しています。フォローアップコマンドでは、新しい接続を確立してから別のコマンドを実行する必要があります。これは私のニーズにはうまくいかない。
私はSSH2用のSSH2Shellラッパーを使い始めました。複数のコマンドを連続した順序で実行できるようになったからです。しかし、SSH2Shellを使用すると、クライアントが提供する暗号がサーバでサポートされているものと一致しないため、Cisco機器との接続を確立できません。 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のための私のコードです。シスコルータでデバッグすると、私の暗号が一致しないことがわかります。
Aug 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