アプリケーション開発ポータルサイト
ServerNote.NET
カテゴリー【Amazon/AWSUbuntuDebianCentOS
AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys failed, status 22の対処法
POSTED BY
2023-03-23

EC2でインスタンスが2台あって、片方のマシンからもう片方にローカルIPでSSH接続しようとすると、正しい鍵ファイルを指定してるにもかかわらずエラーで接続できないことがある。

接続される側の/var/log/auth.logを見てみると、

sshd[16334]: AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys hogeuser SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXX failed, status 22
sshd[16334]: Connection closed by authenticating user hogeuser xxx.xxx.xxx.xxx port 37498 [preauth]

などと言われていた。

この謎のec2-instance-connectが怪しい。どうやらデーモンサービスとして最初からインストールされているようで、
/lib/systemd/system/ssh.service.d/ec2-instance-connect.confというファイルがあって、中身が

[Service]
ExecStart=
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

のような感じで、sshdの起動に干渉してきている。当方はこれらは不要とみなし、アンインストールした。(※自己責任注意

sudo apt remove --purge ec2-instance-connect

ec2-instance-connect関係ファイルはすべて消えた。

systemctl daemon-reloadでは反映されなかったため、rebootした。

reboot

あらためて片方からsshを試みたところ、今度は無事に接続できた。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

【キーワード検索】