gpt4 book ai didi

amazon-ec2 - 使用 cloud-init 将文件写入 ~/.ssh/会中断 SSH 到 EC2 实例(可能是任何机器)

转载 作者:行者123 更新时间:2023-12-02 14:29:58 25 4
gpt4 key购买 nike

我在 YAML 中使用 Cloudformation 模板和嵌入式 cloud-init UserData 来设置主机名和安装包等,我发现一旦我包含 write_files指令它将破坏 EC2 实例上的默认 SSH key ,即它似乎会干扰 AWS 用来管理 authorized_files 的任何进程,在 EC2 日志中,我可以看到正在生成随 secret 钥的指纹,而不是预期的 key 对。

      #cloud-config
hostname: ${InstanceHostname}
fqdn: ${InstanceHostname}.${PublicDomainName}
manage_etc_hosts: true
package_update: true
package_upgrade: true
packages:
- build-essential
- git
write_files:
- path: /home/ubuntu/.ssh/config
permissions: '0600'
owner: "ubuntu:ubuntu"
content: |
Host github.com
IdentityFile ~/.ssh/git
Host *.int.${PublicDomainName}
IdentityFile ~/.ssh/default
User ubuntu
power_state:
timeout: 120
message: Rebooting to ensure hostname has stuck correctly
mode: reboot

删除 write_files block 可以正常工作,将其保留,由于 ssh key 不匹配,我无法通过 SSH 连接到主机。

那么是否应该将文件写入 ~/.ssh? ,也许 ~/.ssh/authorized_keys被删除?或者目录的权限可能被更改?

附加到 ~/.ssh/authorized_keysruncmd工作正常,但我想使用正确的 write_files大文件的方法

最佳答案

对于 AWS EC2 Linux 实例,您的 key 对中的 SSH 公有 key 存储在 ~/.ssh/authorized_keys 中。如果您用其他内容覆盖它,请确保您了解其含义。

正确的程序是将 key 对中的公钥附加到 authorized_keys 并设置正确的文件权限。

如果您在authorized_keys 中设置一组 key 对,这也可以。确保您使用公钥正确格式化文件并正确设置文件权限。

文件权限应为 644,以便 SSH 服务器可以读取它们。

另一个可能的问题是,当您更改 authorized_keys 时,您还需要重新启动 SSH 服务器,但我确实看到您正在重新启动服务器,从而消除了该问题。

Ubuntu 示例:

sudo service ssh restart

关于amazon-ec2 - 使用 cloud-init 将文件写入 ~/.ssh/会中断 SSH 到 EC2 实例(可能是任何机器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51555894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com