我是使用SaltStack和AWS的新手,可能这是一个愚蠢的问题,我创建了一个AMI(使用打包器)与SaltStack(无主)作为配置器...我能够通过 ssh 连接并向小黄人进行配置。我能够成功地运行salt-call state.highstate
。后来,我失去了与我的实例的连接,([root@<ip> ec2-user]# Write failed: Broken pipe
)之后,我无法再次连接。
尝试过什么:
- 重启实例,但不起作用
- 我已经检查了 .ssh 文件的权限,它们看起来很好 创建一个新实例
- 并使用相同的 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
。