你如何在shell脚本中使用ssh?

Jon*_*son 15 ssh bash shell ksh rsh

当我尝试在shell脚本中使用ssh命令时,命令就在那里.你有一个如何在shell脚本中使用ssh的例子吗?

Mat*_*son 33

取决于你想做什么,以及你如何使用它.如果您只想在另一台机器上远程安全地执行命令,请使用

ssh user@host command
Run Code Online (Sandbox Code Playgroud)

例如

ssh user@host ls
Run Code Online (Sandbox Code Playgroud)

为了安全地执行此操作,您需要在运行时询问用户密码,或者在远程主机上设置密钥.

  • +1的完整性,简洁性和简洁性......以示例开机! (3认同)

Jon*_*son 22

首先,您需要确保已设置无密码(公钥登录).至少有两种ssh配置文件格式略有不同.检查系统上的ssh联机帮助页,咨询本地sysadmin或转到如何设置公钥验证?.

要以批处理模式运行ssh(例如在shell脚本中),您需要传递要运行的命令.语法是:

ssh host command
Run Code Online (Sandbox Code Playgroud)

如果要同时运行多个命令,请使用引号和分号:

ssh host "command1; command2"
Run Code Online (Sandbox Code Playgroud)

需要引号来保护分析符不受shell解释器的影响.如果你把它们遗漏了,只有第一个命令可以远程运行,其余的都将在本地机器上运行.

  • 这是否存在于 Mac OS 上或者这只是 Linux 的东西?是的,我刚刚阅读了[如何获得这顶帽子](http://meta.stackexchange.com/a/270851/256945)。虽然想发表有意义的评论。 (2认同)