Казалось бы, уже давно отработанный механизм с .ssh/authorized_keys в случае амазона ВДРУГ дал сбой. Вдруг - потому что ещё несколько лет назад этой ПРОБЛЕМЫ не было.
Смотрим /var/log/auth.log и видим там крайне сомнительные строки
AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys username SHA256:ecphulTPPp7xHnSCVkuQH2fcXemYKjT8xFftheRDz+s failed, status 22
Но секрет прост: кто-то "переиграл в безопасность" и
# apt show ec2-instance-connect
...
Description: Configures ssh daemon to accept EC2 Instance Connect ssh keys
EC2 Instance Connect is a service that publishes ssh keys for use by EC2
instances based on AWS Credentials. These keys are consumed by on-instance
configuration provided by this package. The ssh daemon will query EC2
Instance Metadata service for user-keys at ssh calltime, validate any if
present as well as validating their signature, and if all checks pass return
will include them in the authorized keys list.
Фикс версия 1:
apt remove ec2-instance-connect
systemctl restart sshd
Фикс версия 2:
rm /usr/lib/systemd/system/ssh.service.d/ec2-instance-connect.conf
systemctl daemon-reload
И ещё немного почитать
https://github.com/widdix/aws-ec2-ssh/issues/157
И причина:
ExecStart=/usr/sbin/sshd -D -o "AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys %%u %%f" -o "AuthorizedKeysCommandUser ec2-instance-connect" $SSHD_OPTS