我意识到这个问题已被问过几次,但我在搜索的任何地方都找不到相关的答案。
我在一个安全不是问题的开发环境中工作,任何人只要考虑几秒钟就可以猜出密码。
我想做的很简单。我在我的本地 .bashrc 文件中创建了一个别名函数,我希望这个函数能够使用默认密码自动登录机器。
我当前的实现看起来像这样:
function s () {
ssh root@192.168.1.$1
}
当我运行它时,我会得到这样的东西:
~]s 122
ssh root@192.168.1.122
root@192.168.1.122's password:
使用 Bash,而不是使用 RSA 密钥我想让它使用默认密码“密码”。
我已经尝试了以下已设置 IP 和用户的方法。
Do=$(expect -c "
spawn ssh $User@${IP[0]}.${IP[1]}.${IP[2]}.${IP[3]}
expect \"yes/no\"
send \"yes\r\"
expect \"assword\" send \"password\"")
echo $Do
$Do
它给出了以下错误:
Connecting and logging into server using expect
usage: send [args] string
while executing
"send"
invoked from within
"expect "assword" send "password""
Administrator@192.168.1.176's password:
bash: spawn: command not found...
使用以下命令,我可以连接机器。如果我删除了交互,它只会运行 uptime 命令并关闭连接。使用交互命令,我无法看到我正在输入的内容或实际与机器交互。有任何想法吗?
Do=$(expect -c "spawn ssh $User@${IP[0]}.${IP[1]}.${IP[2]}.${IP[3]}; set timeout 4; expect \"assword\"; send \"password\n\"; expect \"test\"; send \"uptime\n\"; interact;");echo $Do;