繁体   English   中英

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

[英]How do you use ssh in a shell script?

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

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

ssh user@host command

例如

ssh user@host ls

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

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

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

ssh host command

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

ssh host "command1; command2"

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

您可以使用expect命令填充用户名/密码信息。

您需要将SSH公钥放入远程主机上的~/.ssh/authorized_keys文件中。 然后,您将能够以无密码SSH方式连接到该主机。

或者,您可以使用ssh-agent 我建议不要在脚本中存储密码。

最简单的方法是为运行脚本的用户使用证书。

更复杂的一个意味着当shell命令要求时向stdin添加密码。 期待,perl库向用户显示提示输入密码(如果是交互式的,至少),有很多选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM