这是为了跟进这个线程: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脚本无法展开密码?
多谢了
1条答案
按热度按时间yqyhoc1h1#
您可以使用
sshpass
,但这是一个错误的决定。最好使用key-based authorization.但如果你对自己的行为充满信心,那么就有这样的例子:
安装sshpass:
基于Debian(Ubuntu):
$ apt-get install sshpass
Fedora/CentOS:
$ yum install sshpass
Arch-based:
$ pacman -S sshpass