x3n*_*r0s 5 ssh amazon-web-services
最近我犯了一个愚蠢的错误,就是在我的 AWS 实例上清除了我用户的 ~/.ssh/authorized_keys 文件的内容。因此,我无法再通过 ssh 连接到该实例。
我意识到我可以通过 AWS EC2 实例用户数据重新添加这些密钥。然而,到目前为止我还没有运气。我停止了我的实例,将以下内容添加到用户数据中并再次启动它:
#!/bin/bash
> /home/myUser/.ssh/authorized_keys
echo "ssh-rsa aaa/bbb/ccc/ddd/etc== mykeypair" >> /home/myUser/.ssh/authorized_keys
chown myUser:myUser /home/myUser/.ssh/authorized_keys
chmod 600 /home/myUser/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
这应该清空文件,添加公钥对并确保文件上存在正确的权限。
但是我的私钥仍然被拒绝。
我知道密钥是正确的,所以它一定与我的实例用户数据有关。我也试过在所有命令前加上“sudo”。
尝试使用 cloud-init 指令而不是 shell
#cloud-config
cloud_final_modules:
- [users-groups,always]
users:
- name: example_user
groups: [ wheel ]
sudo: [ "ALL=(ALL) NOPASSWD:ALL" ]
shell: /bin/bash
ssh-authorized-keys:
- ssh-rsa AAAAB3Nz<your public key>...
Run Code Online (Sandbox Code Playgroud)
默认行为是每个实例执行一次。但是,这些说明会在每次重启或重启实例时添加密钥。如果删除了用户数据,则会恢复默认功能。这些指令适用于支持 cloud-init 指令的所有操作系统发行版。
https://aws.amazon.com/premiumsupport/knowledge-center/ec2-user-account-cloud-init-user-data/
| 归档时间: |
|
| 查看次数: |
5348 次 |
| 最近记录: |