我有以下脚本通过SSH用户SSH连接到服务器。它是我想在许多服务器和应用程序中使用的测试脚本。但是,不是在脚本中将密码作为纯文本提供,而是希望将其隐藏或加密,然后在脚本运行时解密。
#!/usr/bin/expect -f
set timeout 2
set ip 78.47.1xx.xx
set port 22
set rootpwd adgajfgjagf
set wuser winner
set wpwd winner#@!
spawn ssh -l $wuser $ip -p $port
expect -re "connecting (yes/no)?" {
send -- "yes\r"
}
expect -nocase -re "password:" {
send "$wpwd\r"
}
expect "# " {
send -- "su - root\r"
expect "Password: "
send -- "$rootpwd\r"
interact
} ## Heading ##
答案 0 :(得分:0)
为什么不使用ssh密钥登录呢?
对于您希望能够连接的每台计算机,您必须要求他们的公共ssh密钥并将它们添加到autorized_keys。然后当通过ssh连接时,这些机器不需要输入密码。
来源:http://sshkeychain.sourceforge.net/mirrors/SSH-with-Keys-HOWTO/SSH-with-Keys-HOWTO-4.html
答案 1 :(得分:0)
过去,我不得不使用模糊处理(yencode)和文件权限。