如何使用SSH在远程计算机上运行shell脚本?

こ雲淡風輕ζ 提交于 2019-12-11 18:39:43

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

我必须在远程机器上运行shell脚本(windows / Linux)。

我在机器A和B上配置了SSH。我的脚本在机器A上,它将在远程机器上运行我的一些代码,机器B.

本地和远程计算机可以是基于Windows或Unix的系统。

有没有办法使用plink / ssh运行?


#1楼

尝试运行ssh user@remote sh ./script.unx


#2楼

如果机器A是Windows框,则可以将Plink( PuTTY的一部分)与-m参数一起使用,它将在远程服务器上执行本地脚本。

plink root@MachineB -m local_script.sh

如果机器A是基于Unix的系统,您可以使用:

ssh root@MachineB 'bash -s' < local_script.sh

您不必将脚本复制到远程服务器以运行它。


#3楼

<hostA_shell_prompt>$ ssh user@hostB "ls -la"

这将提示您输入密码,除非您已将hostA用户的公钥复制到用户.ssh目录主页上的authorized_keys文件中。 这将允许无密码身份验证(如果在ssh服务器的配置上被接受为auth方法)


#4楼

首先,使用scp将脚本复制到Machine B.

[user @ machineA] $ scp / path / to / script user @ machineB:/ home / user / path

然后,只需运行脚本

[user @ machineA] $ ssh user @ machineB“/ home / user / path / script”

如果您已授予脚本可执行权限,则此方法有效。


#5楼

假设您想要从“本地”机器自动执行此操作,而无需手动登录“远程”机器,您应该查看名为Expect的TCL扩展,它专为此类情况而设计。 我还提供了一个用于通过SSH登录/交互的脚本的链接。

https://www.nist.gov/services-resources/software/expect

http://bash.cyberciti.biz/security/expect-ssh-login-script/

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!