我必须在远程机器上运行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楼
$ 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登录/交互的脚本的链接。