[英]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.