ユーザーにパスワードではなくsshキーでログインできるようにするにはどうすればよいですか?


17

ユーザーを作成しますが、パスワードはありません。のように、パスワードでログインすることはできません。ルートを使用して、そのauthorized_keysにキーを追加したい。これは私の自動バックアップシステム用です。

回答:


26

少なくともFedoraでは、shadow-utilsに基づいたLinuxディストリビューションでpasswd -d使用は明らかに間違っています。でパスワードを削除するとpasswd -d、誰でもそのユーザーに(コンソールまたはグラフィカルで)ログインでき、パスワードは提供されません。

パスワード認証でログインをブロックするには、を実行します。これにより、アカウントがロックされ、rootユーザーのみが使用できるようになります。ロックは、暗号化されたパスワードを無効な文字列にレンダリングすることで実行されます(暗号化された文字列の前に!passwd -l username

ローカルまたはリモートでログインを試行すると、「不正なパスワード」が発生しますが、公開鍵ログインは引き続き機能します。その後、でアカウントのロックを解除できます。passwd -u username

アカウントを削除せずに完全にロックする場合は、最後のフィールドで編集/etc/passwdして設定します。これにより、「このアカウントは現在利用できません」という結果になります。すべてのログイン試行に対して。/sbin/nologin/bin/false

passwd(1)のマニュアルページを参照してください。


@guido:rvsはあなたの答えを通知されません。そのために彼の答えにコメントを追加する必要があります(私はやったことがあります)。読者は彼の前にあなたの答えを読むかもしれないことに注意してください、あなたは質問に直接答える答えを書くべきです。これを指摘してくれました!ほとんどのLinuxディストリビューション(Linuxシャドウユーティリティを使用するディストリビューション)に適用されます。
ジル 'SO-悪

@Gilles:ごめんなさい、stackexchangeの初心者です。それはセットアップパスワードなしのアカウントにユーザーを示唆ようなものだったので、私はほとんどこの1からビットを指摘していない、それが受け入れられ、としてマークされた便利な ...
グイド・

@guido:心配いりません。警告をより効果的にする方法を説明していました。実際、答えが危険なほど間違っている極端なケースでは、警告または修正を追加する編集を提案することが適切です(サイトでこれらの状況に頻繁に遭遇しないことを願っています)。
ジル「SO-悪であるのをやめる」

@guido:実際、Debian Squeeze(私はlennyやetchについては知りません)で、それはうまくいきます。root以外の誰もログインできず、キーを認証できますが、パスワードは少なくありません。パスワードを受け入れません。「パスワードを削除する」ことができて、それがこのように機能することに驚いた。しかし、それはまさに私が望んでいたことと、この答えがすることを正確にやり、それが唯一の答えだったので、私はそれを受け入れました。この答えはより理にかなっており、他のdistosがdebianとは異なりパスワードなしで誰でもログインできるようにしたいと思っているので、私はそれを受け入れます。とにかく良い答え。

1
@ acidzombie24、@mattdn:彼らは削除した可能性がnullokからのpam.d /パスワード認証をもしDebianの用途のPAM(私はそう思うが、私はDebianの専門家ではないです)。ただし、passwd(1)のマンページclearyは、-d引数はパスワードなしのアカウントを作成することであるため、質問は非常に一般的であるため、ここでのディストリビューション固有の推測は二次的です。
guido

2

パスワードベースの認証ではなく、キー/パスフレーズ認証を受け入れるように、SSHデーモンに固有の質問をしていませんか?

への変更を探しますsshd_config

セットする

PasswordAuthentication No
PreferredAuthentications publickey,hostbased,keyboard-interactive
Protocol 2,1

man ssh_configでさらに構成パラメーターを探します


0

ユーザーのパスワードを設定しないでください。既にパスワードがある場合は、を使用して削除しますpasswd -l <username>

ただし、authorized_keysを使用するか、特権アカウントからsuまたはsudoを使用して、このユーザーとしてログインすることは可能です。


1
guido指摘したようにpasswd -d、アカウントをパスワードなしにします。たとえば、パスワードを入力しなくてもログインできます。passwd -lアカウントをロックするために使用します(入力不可能なパスワードを与えると考えてください)。
ジル「SO-悪であるのをやめる」

あなたの投稿に警告を追加しました。それは現状では危険だからです。あなたの答えを修正するか、あなたの答えを削除するか(あなたがギルドで十分だと思う場合)、または警告に反論するかどうかを決めるのはあなたに任せます。
ジル 'SO-悪であるのをやめる'

なぜなぜ人々はうまくいかない答えを受け入れるのですか?
数学

@mathepic:debianで動作します。まさに私が尋ねた方法

特権を持たないユーザーがsuそのユーザーにできないことを確認しますか?
mattdm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.