使用ssh执行Unix命令列表

Mat*_*att 2 unix linux shell

我想在多台机器上运行相同的Unix命令集.我知道ssh和下面的东西.我想编写一个shell脚本来执行此操作.我可以访问bash和ksh,我在Linux Red Hat 5上.

ssh root@ip "echo \$HOME"
Run Code Online (Sandbox Code Playgroud)

但是,我有两个问题:

  1. 我不断收到提示输入密码的提示.如何让它不提示我并自动输入密码?
  2. 如何执行多个命令?

Syl*_*sne 7

  1. 您应该使用基于密钥的身份验证,可能ssh-agent需要记住密钥密码.

  2. 您可以sh -c作为命令调用,并将包含要执行的命令列表的字符串传递给它. ssh在远程计算机上调用shell,因此您可以将命令列表作为字符串传递.

例如:

$ ssh user@ip "echo 'Hello world'; whoami; cd / ; ls"
Run Code Online (Sandbox Code Playgroud)