Ssh

如何使用 SSH 在全域配置模式下執行 Cisco IOS 命令?

  • October 2, 2014

我知道 Kron,但據說沒有辦法執行全域配置命令:

http://www.techrepublic.com/article/schedule-commands-with-cisco-ios-kron/

如果我使用 Putty 連接,Putty 能夠在登錄後執行多個命令,這就像一個魅力。問題是我想在每晚 11 點自動進入開關並關閉一系列界面。

我正在嘗試使用 sshpass,但它似乎一次只允許 1 個命令。

還有一種無密碼方式可以進入 cisco 交換機,但從 IOS 15.0 開始:

https://www.m00nie.com/2010/12/password-less-ssh-login-using-pki-to-cisco-ios/

碰巧幾年前我也有同樣的工作要做。這是我當時所做的,希望對您有所幫助:

#!/usr/bin/expect -f

set ipadr [lindex $argv 0]
set cmd [lindex $argv 1]
set fich [lindex $argv 2]

if { ${cmd} == 1 } then {set comm "sh flash | tee tftp://TFTP-IP-ADDRESS/essai\r"} else {set comm "copy flash:${fich} tftp://TFTP-IP-ADDRESS\r"}

spawn ssh niji@${ipadr}
expect {
"password:"  { send "YOURPASSWORDHERE\r" }
"(yes/no)?"  { send "yes\r"; expect { "password:" { send "YOURPASSWORDHERE\r"; }}}
"Name:"      { send "YOURUSERNAMEHERE\r"; sleep 3 ; send "YOURPASSWORDHERE\r"; }
"Connection refused" { exit }
}

expect {
">" { send "en\r" ; sleep 3; send "EN-PASSWD\r";}
"#" { send "\r" }
}


expect {
"#" { send "${comm}" ; sleep 5; send "\r" ;send "\r" }
}

expect {
"#" { send "exit\r"; send "quit\r" }
}

這將 IOS 設備與作為參數提供的 IP 地址連接起來。密碼和使用者名是硬編碼的,所以我想你想改進一下。

發送到路由器的命令是“copy run tftp”或類似的命令,但您也可以將其更改為您需要的任何內容。

那是前一段時間,我想如果我現在必須重新使用它,我會做一些重新工作,但這可能是一個很好的開始。

乾杯,

引用自:https://serverfault.com/questions/632596