如何编写一个登录到另一台机器上做事的 bash 脚本?

Auf*_*ind 11 bash ssh shell-script

是否可以编写一个 bash 脚本,即

  1. 将从机器 A 启动,通过 ssh 登录到不同的机器 B(机器 A 和 B 都是 Linux 机器),
  2. 将一些文件复制到机器 B 上
  3. 在这些机器上运行给定的 python 脚本的 python 脚本。
  4. 将结果传输回机器 A
  5. 从机器 B 注销。

这在技术上可行吗?

pbm*_*pbm 15

当然是可行的:

scp file user@host:
ssh user@host path_to_script
scp user@host:file_to_copy ./
Run Code Online (Sandbox Code Playgroud)

就是这样......

但是有一个问题:你会被要求输入密码三次。为避免这种情况,您可以生成 ssh 密钥并通过这些密钥授权用户。

要生成 ssh 密钥ssh-keygen -t rsa,请回答问题并将公钥复制到远程主机(机器 B)到~/.ssh/authorized_keys文件。私钥应保存在~/.ssh/id_rsa本地机器 (A) 上。


jfg*_*956 5

我可以在单个ssh连接/会话中完成所有操作:

ssh user@host "cat > remote_dst; command; cat remote_src" < local_src > local_dst
Run Code Online (Sandbox Code Playgroud)

这个:

  1. 复制local_srcremote_dst,
  2. 执行command,
  3. 复制remote_srclocal_dst.

但是如果command写上去stdout,结果也是在local_dst。如果command从 读取输入stdin,它将接收 和EOF