以下是我所知道的: -
echo "passowrd" | sudo SOME_COMMAND
上面提到的命令将直接在bash shell中以root身份登录并运行SOME_COMMAND
。
我想做什么: -
我想从远程机器执行相同的任务。为此我想通过ssh命令传递 PASSWORD作为变量。这样的事情: -
ssh -o PASSWORD=password user@hostA 'echo $PASSWORD | sudo SOME_COMMAND'
但它没有通过$PASSWORD
变量。
任何帮助将不胜感激。
感谢!!!
Simeple摘要: -
这是我想做的事: -
我想通过SSH登录时将变量传递给远程主机,以便我可以在远程主机脚本中访问它。
答案 0 :(得分:2)
您可以使用sshpass实用程序执行此任务。 但这不是一种安全的方式,你的传递不是格式化的。
参考:https://www.cyberciti.biz/faq/noninteractive-shell-script-ssh-password-provider/
答案 1 :(得分:0)
每天,某些人都有同样的问题
您不能在一行中使用sudo
和ssh
。
这是我在星期六举行的discution and solution。
要通过Pipe传递变量,您可以执行以下操作...
echo "Hello World!" | ssh USER@HOST cat
其他方法是通过scp
或rsync
传递文件。