shell 使用脚本登录SSH时如何展开密码变量

mbjcgjjk  于 2023-03-24  发布在  Shell
关注(0)|答案(1)|浏览(135)

这是为了跟进这个线程:Automatically enter SSH password with script
在我的例子中,我不能使用sshpass,我不能使用expect,我只需要编写脚本,就像在最终用户机器上没有安装其他包一样。
我想ssh通过一个shell脚本和扩大的密码,但它不工作。
因此,使用shell脚本,假设我创建了这些变量:

_USER='Joebloe'
_MACHINE='1.1.1.1'
_PASSWORD='Password'

然后,目标只是ssh并传递密码:

ssh $(echo $_USER)@$(echo $_MACHINE)  ##That works fine

然后,它提示输入密码:
密码:
但是我不能说echo $_PASSWORD甚至$(echo $_PASSWORD),因为它按字面意思取值。
有没有一种方法可以在输入密码时立即展开密码,或者在处理密码之前展开密码,或者通过shell脚本无法展开密码?
多谢了

yqyhoc1h

yqyhoc1h1#

您可以使用sshpass,但这是一个错误的决定。最好使用key-based authorization.
但如果你对自己的行为充满信心,那么就有这样的例子:
安装sshpass:
基于Debian(Ubuntu):$ apt-get install sshpass
Fedora/CentOS:$ yum install sshpass
Arch-based:$ pacman -S sshpass

$ sshpass -p $(echo $_PASSWORD) ssh $(echo $_USER)@$(echo $_MACHINE)

相关问题