带加密密码的SSH脚本

时间:2014-03-21 13:35:16

标签: encryption ssh expect

我有以下脚本通过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 ##

2 个答案:

答案 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)和文件权限。