我想使用 SSH 运行一个 shell 脚本,它从其他机器获取资源,而脚本在其他机器上,都在同一个网络上。我不想将资源复制到本地计算机。
注意:shell 脚本将 .txt 文件作为输入
试试这个:
ssh USER_NAME@HOST_ADDRESS "BASH_SCRIPT_FILE_PATH"
您需要在需要时提供密码。
如果 server1 上有 script.sh,server2 上有 file.txt,则可以通过 ssh 连接到 server1,然后执行以下操作:
[user@server1]$ ssh user@server2 "cd mydir && cat file.txt" | ./script.sh
如果您的脚本在机器 A 中,则您无法在机器 B 上运行它而不复制它。首先,使用 scp 将脚本复制到机器 B
[user@machineA]$ scp /path/to/script user@machineB:/home/user/path
然后,只需运行脚本
[user@machineA]$ ssh user@machineB "/home/user/path/script"
如果您已授予脚本可执行权限,这将起作用。
或者
试试这个。。
<hostA_shell_prompt>$ ssh user@hostB "ls -la"
这将提示您输入密码,除非您已将 hostA 用户的公钥复制到用户 .ssh 目录主目录上的 authorized_keys 文件中。这将允许无密码身份验证(如果被接受为 ssh 服务器配置上的身份验证方法)
我不完全理解你的问题。其他答案给出了“如何运行远程脚本?”
但我认为问题是远程脚本必须获取远程文件,即使我不确定
sshfs
如果未安装,请安装。sshfs
程序有点大。