【发布时间】:2014-10-28 19:39:40
【问题描述】:
我正在使用 Bash 别名,它允许我缩短 SSH 命令以便登录我的路由器。相当琐碎,但可以节省时间!我现在想做的是更进一步,完全自动化路由器的登录。
例如,在我的~/.bashrc 文件中,我有以下条目:
sshFuncB()
{
ssh -o StrictHostKeyChecking=no superuser@$1 - | /usr/bin/expect<<EOF
set timeout 5
set send_human {.1 .3 1 .05 2}
expect {
"password: " { send -h "MYPASSWORD\r" }
"No route to host" { exit 1 }
timeout { exit 1 }
}
set timeout 2
sleep 1
expect {
"N]?" { send "y\r"; exp_continue }
timeout { exit 1 }
}
expect eof
EOF
}
alias z=sshFunc
但是,当我输入 z myrouterhostname 时,这并没有提供所需的输出。我必须找到一种方法来启动 SSH 连接,并希望在将控制权返回给用户之前自动登录。
有什么想法吗?
【问题讨论】:
-
您的别名
z指向的是sshFunc而不是sshFuncB。我希望这是一个错字。一个问题。你有任何输出吗?