当我使用ssh
连接到另一台服务器时,我正在使用' EOF'标记在远程服务器中执行某些命令。但是他们无法在远程服务器上执行命令。
如果未启用无密码ssh
连接,如何从脚本输入密码而无需用户输入密码?
$ su - oracle < passwd.txt
standard in must be a tty
答案 0 :(得分:0)
如果未启用密码较少的连通性(假设启用了密钥身份验证 - 更安全......)则在机器之间使用密钥。 使用ssh-keygen生成密钥,并使用ssh-copy-id
将其复制到远程服务器答案 1 :(得分:0)
这样做的好方法是为该命令设置一个无密码的sudo。
如果没有sudo
命令,请安装它,然后使用visudo
命令修改sudoers文件,并添加如下一行:
youruser ALL=(oracle) NOPASSWD: the command you want to launch
例如
girish ALL=(oracle) NOPASSWD: /bin/stop-process
然后,在您的脚本中,只需执行:
ssh girish@myserver 'sudo -u oracle /bin/stop-process'
并且不会询问密码。