管道断开后无法使用 ssh 连接到实例



我是使用SaltStack和AWS的新手,可能这是一个愚蠢的问题,我创建了一个AMI(使用打包器)与SaltStack(无主)作为配置器...我能够通过 ssh 连接并向小黄人进行配置。我能够成功地运行salt-call state.highstate。后来,我失去了与我的实例的连接,([root@<ip> ec2-user]# Write failed: Broken pipe)之后,我无法再次连接。

尝试过什么:

  1. 重启实例,但不起作用
  2. 我已经检查了 .ssh 文件的权限,它们看起来很好
  3. 创建一个新实例
  4. 并使用相同的 key.pem,我能够连接到这个新实例。

不确定我是否缺少SaltStack中的配置。运行salt-call state.highstate后我的实例上的密钥是否有可能更改?

我做错了什么?

运行 highstate 没有任何固有的东西会终止 SSH 连接并阻止您重新连接。我怀疑是您的 SLS 文件中的某些东西破坏了 SSH - 当您运行 highstate 时应用。

您的 Salt 状态可能已经完成的事情:

  • 您的 SSH 密钥已被删除/破坏
  • opensshd配置已更改
  • openssh-server已卸载

编辑:在评论中链接的pastebin中看到Salt的输出后,这可能是被注释掉AuthorizedKeysFile选项:

-AuthorizedKeysFile .ssh/authorized_keys
+#AuthorizedKeysFile    .ssh/authorized_keys

我建议使用 file.replace 来修补您需要的特定更改,而不是用新版本替换整个/etc/ssh/sshd_config

最新更新