というわけで、Alpine Linuxでパスワードなしのユーザーで鍵認証すると Permission denied (publickey,keyboard-interactive). と言われるので、もろもろチーム内で調査をしてみました。


■事象

  • /etc/ssh/sshd_config

  • add user

  • ssh login(no pass)

  • ssh login(setting pass)

上記のようにパスワードを設定すると何故か鍵認証が可能になる。


■パスワードを設定していないユーザで ssh ログインしようとすると公開鍵認証でもログインに失敗する

https://tkuchiki.hatenablog.com/entry/2013/05/27/211051

Linux だと、/etc/shadow の USERNAME:の次に「!!」と書いて有る場合は lockされているっぽい(FreeBSD だと 「*LOCKED*」)。
確かに、/etc/shadow に !! と書いてあった。
パスワードを設定したら、!! が ランダム文字列に置き換わっていた。

とのことなので新しくユーザーを作成して確認してみると!!確かにlockされていることがわかりました。


■じゃあどうしたらいいわけ!?

debianでは --disabled-password というオプションを指定すればロック状態にはならないのですが、Alpineだとこのオプションではロックがかかったままとなっていました。ちなみに以下のようにAlpineだとBusyBoxのコマンドで成り立っています。

  • Alpine Linux

逆にdebianはbusyboxではなかったので、同じ adduser コマンドでもバイナリが違うということになりますので気をつけましょう。

  • debian

なので、そもそもロックを解除すればいいわけで、以下のように passwd コマンドで指定してあげれば、パスワードなしでも鍵認証が可能となります。


 ■まとめ

ディストリビューションごとに設定が特殊ということなので、認識するしかないですが、BusyBoxのコマンドについてもっと調べる必要がありますね。これはハマった。


カテゴリー: Alpine Linux

adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください