密码作为Enviornment变量thourgh ssh

时间:2017-03-09 12:13:32

标签: linux bash ssh remote-access sudo

以下是我所知道的: -

echo "passowrd" | sudo SOME_COMMAND

上面提到的命令将直接在bash shell中以root身份登录并运行SOME_COMMAND

我想做什么: -

我想从远程机器执行相同的任务。为此我想通过ssh命令传递 PASSWORD作为变量。这样的事情: -

ssh -o PASSWORD=password user@hostA 'echo $PASSWORD | sudo SOME_COMMAND'

(参考: - When ssh'ing, how can I set an environment variable on the server that changes from session to session?

但它没有通过$PASSWORD变量。

任何帮助将不胜感激。

感谢!!!

Simeple摘要: -

这是我想做的事: -

我想通过SSH登录时将变量传递给远程主机,以便我可以在远程主机脚本中访问它。

2 个答案:

答案 0 :(得分:2)

您可以使用sshpass实用程序执行此任务。 但这不是一种安全的方式,你的传递不是格式化的。

参考:https://www.cyberciti.biz/faq/noninteractive-shell-script-ssh-password-provider/

答案 1 :(得分:0)

每天,某些人都有同样的问题 您不能在一行中使用sudossh

这是我在星期六举行的discution and solution

要通过Pipe传递变量,您可以执行以下操作...

echo "Hello World!" | ssh USER@HOST cat

其他方法是通过scprsync传递文件。