linux - 如何使用 ssh 在远程 linux 机器(AWS ec2 实例)上运行本地 .sh 文件(存在于本地 linux 机器上)

标签 linux shell amazon-web-services ssh amazon-ec2

我很难找到一种方法来将本地 Linux 机器上的 .sh 文件执行到恰好是 AWS ec2 实例的远程 Linux 机器上。 这是我在本地机器上所做的:

ssh -i sample.pem ec2-user@server_name.amazon.com 'bash -s' < file_to_remotely_execute.sh

我得到的错误是:

警告:身份文件 sample.pem 不可访问:没有这样的文件或目录。 不会分配伪终端,因为标准输入不是终端。 主机 key 验证失败。

This被称为到达上述方法。

最佳答案

可能的问题:

  1. PEM 文件不存在。
  2. PEM 文件没有适当的权限。
  3. ~/.ssh/known_hosts 文件中不允许主机。

解决方案:

  1. 导航到 PEM 文件所在的位置或提供 PEM 文件的完整路径。
  2. 授予 PEM 文件 400 权限,(sudo chmod 400/path/to/file.pem)。
  3. 通过ssh登录服务器一次,并允许主机。

关于linux - 如何使用 ssh 在远程 linux 机器(AWS ec2 实例)上运行本地 .sh 文件(存在于本地 linux 机器上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38366215/

相关文章:

python - CentOS上用python模块安装OpenCV出错

amazon-web-services - 如何在AWS SAM模板中使用If条件?

java - Amazon S3 Java SDK 多文件上传

laravel - 如何在 AWS CodeCommit 和 CodePipeline 中为 Laravel 动态生成 .env 文件

linux - 在 centos 5.8 上删除并安装 webtatic 存储库

linux - Android Things 音频 I2S 不可用

android - Android 中没有哪些最重要的 POSIX 功能?

bash - IF 语句与逻辑运算符未按预期工作

linux - 如何从连续 yyyy-mm-dd 格式日期的报告中提取详细信息,直到在 unix 中找到下一个 yyyy-mm-dd 条目

macos - 在 Mac 上从命令行上传到 Google Drive