How do you use ssh in a shell script?
当我尝试在shell脚本中使用ssh命令时,该命令就在那里。您有一个如何在shell脚本中使用ssh的示例吗?
取决于你想做什么,以及你如何使用它。如果您只想远程安全地在另一台机器上执行命令,只需使用
1 | ssh user@host command |
例如
1 | ssh user@host ls |
为了安全地做到这一点,您需要在运行时询问用户密码,或者在远程主机上设置密钥。
首先,您需要确保设置了无密码(公钥登录)。至少有两种不同配置文件格式的ssh。检查系统上的ssh手册页,咨询本地系统管理员或了解如何设置公钥身份验证?.
要以批处理模式(例如在shell脚本中)运行ssh,需要传递要运行的命令。语法是:
1 | ssh host command |
如果要同时运行多个命令,请使用引号和分号:
1 | ssh host"command1; command2" |
需要引号来保护分号不受shell解释器的影响。如果您不使用它们,那么只有第一个命令可以远程运行,其余的都可以在本地计算机上运行。
您需要将ssh公钥放入远程主机上的
或者,您可以使用
您可以使用
最简单的方法是为运行脚本的用户使用证书。
一个更复杂的命令意味着当shell命令请求密码时,将其添加到stdin中。除了Perl库之外,向用户显示询问密码的提示(如果是交互式的,至少是交互式的),还有很多选择。