2021-05-04に投稿

公開鍵認証でSSH接続しようとしたのにパスワードを求められた 2

以前も似たような現象に遭遇しましたが、原因が少し異なっていたので書き留めておきます。

経緯・状況

前回の状況と同じ状況です。 Ansible でリモートサーバを操作しようとしましたが、公開鍵認証のはずなのにパスワードを求められてしまいました。

現象

# ansible-playbook -i /workspace/ansible/targets/hosts /workspace/ansible/main.yml -u REMOTE_USER --private-key="/root/.ssh/PRIVATE_KEY" -K

BECOME password:

PLAY [Settings vsftpd and httpd] **********************************************************************************
TASK [Gathering Facts] ********************************************************************************************The authenticity of host 'ssh.example.com (ssh.example.com)' can't be established.
ECDSA key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
fatal: [ssh.example.com]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Warning: 
Permanently added 'ssh.example.com' (ECDSA) to the list of known hosts.\r\[email protected]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).", "unreachable": true}

PLAY RECAP ********************************************************************************************************ssh.example.com              : ok=0    changed=0    unreachable=1    failed=0    skipped=0    rescued=0    ignored=0 

プレイブックを実行しようとすると Permission denied で怒られました。

# ssh -i ~/.ssh/PRIVATE_KEY [email protected]
[email protected]'s password: 
Permission denied, please try again.
[email protected]'s password:
Activate the web console with: systemctl enable --now cockpit.socket

Last login: DDD MMM dd hh:ii:ss yyyy from LOCAL_HOST
[[email protected] ~]$

SSH接続 では公開鍵認証のはずなのにパスワードを求められます。

対処

/var/log/secure を確認すると、 Authentication refused: bad ownership or modes for directory /home/REMOTE_USER/.ssh のエラーメッセージが記録されていました。

調べてみると、 .sshディレクトリ の権限が誤った設定になっているとこのエラーが起きるとのこと。

.ssh/authorized_keys600 にしていましたが、ディレクトリの方は見落としていました。確認したところ、 775 でした。

これを chmod 755 /home/REMOTE_USER/.ssh で修正。

結果、公開鍵認証が成功するようになり、 Ansible のプレイブックも正常に動作するようになりました。

参考

Originally published at labor.ewigleere.net
ツイッターでシェア
みんなに共有、忘れないようにメモ

arm-band

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント