sshは公開鍵認証を許可しなくなりました


22

私のマシンは最近、受信公開鍵認証の受け入れを停止しました。Windowsマシンからsshするubuntu 11.04デスクトップがあります。ページェントでパテを使用します。接続できますが、セットアップしたrsaキーではなく、対話型パスワード認証でのみ接続できます。

キーが〜/ .ssh / authorized_keysにリストされていることを既に確認しました。これを修正するにはどうすればいいですか?


2
最初に~~/.sshとの3つすべて~/.ssh/authorized_keysがあなただけが書き込み可能であることを確認します(特にグループの書き込み許可はありません)。/var/log/auth.logログイン試行時に作成されたログエントリを探します。それらをコピーして質問に貼り付けます(必要に応じて、プライバシー保護のために名前を編集します)。また、問題が純粋にサーバー側にあるかどうかを確認します。秘密鍵をLinuxマシンにコピーし(PuTTYの秘密鍵ファイルをOpenSSH形式に変換する必要があります)、動作するかどうかを確認しますssh localhost
ジル 'SO-悪である停止

私のホームディレクトリは何らかの理由で書き込み可能です。それはそれを修正しました。私はそれを受け入れることができるように答えとしてそれを入れてください。
アンドリューレッド

回答:


28

公開鍵認証が機能しない場合:サーバー側で、ホームディレクトリ(~)、~/.sshディレクトリ、および~/.ssh/authorized_keysファイルがすべて所有者のみによって書き込み可能であることを確認してください。特に、それらはどれもグループが書き込み可能である必要はありません(ユーザーがグループに一人でいる場合でも)。chmod 755またはchmod 700大丈夫、そうでchmod 770はありません。

何かが間違っている場合に確認するもの:

  • 実行ssh -vvvして、多くのデバッグ出力を確認します。sshで接続できない理由を尋ねる質問を投稿する場合は、この出力を含めます(ホスト名とユーザー名を匿名化することもできます)。
  • 可能であれば、サーバーのログインを確認してください/var/log/auth.log
  • 公開キー認証が機能しない場合は、アクセス許可、特にグループビット(上記を参照)を再度確認してください。

U&Lタグwikiから、AUにコピーされました)
ジル「SO-停止する悪」

1
いい答えだ!homedirを忘れました:o
RobAu

最新バージョンのssh(またはsshd)を実行している場合、セキュリティ上の問題のため、DSAキーはデフォルトでサポートされなくなりました。唯一の本当の修正は、RSAまたはより良いキーにアップグレードすることです。
ミッコランタライネン16

ホームフォルダーのアクセス許可を変更しましたか?SSHからロックアウトされました!私はsshキーを変更しました、いいえ、サーバーはまだ接続を拒否します!私は解決策を見つけようとしてクレイジーで、私のホームフォルダへのchmod 700の答えで、sshが働き始めました!!!!!!! ありがとう!ソリューションを見つけようとして端末接続が切断された場合、サーバーから完全にロックアウトされます。したがって、ホームフォルダーのアクセス許可を使用しないでください。(.sshフォルダーではなく、ホームフォルダーのアクセス許可を変更しましたが、まだSSHからロックアウトされています)
タリック

9

私は同じことに遭遇し、最終的にはホームディレクトリを暗号化したためだとわかりました。SSHは、ログインするまでauthorized_keysファイルを読み取ることができないため、基本的に最初にパスワード認証を強制します。次のリンクの暗号化されたホームディレクトリに関するセクションを参照してください。

https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Encrypted_Home_Directory


5

ディレクトリの権限を確認し、「。」がある場合 それらの直後にselinuxを有効にすると、キー交換が台無しになり、デフォルトで手動のパスワード識別になります。

http://www.centos.org/docs/5/html/5.1/Deployment_Guide/sec-sel-enable-disable-enforcement.htmlの指示に従って、SELinuxを無効にしてトラブルシューティングを行うか、単に/ etcを編集します。 / selinux / configファイルを「強制」から「無効」に変更します。

お役に立てれば。


selinuxを有効にしていましたが、無効にすると解決しないようです。私にとってのトリックはchmod 600 ~/.ssh/authorized_keys、ファイルがグループ書き込み可能であることでした。(経由pyrosoft.co.uk/blog/2013/01/12/...
デヴィッド・Carboniの

これは私を助けました!ありがとうございました!
907th

また、正しいSELinuxコンテキストを設定することにより、SELinuxでSSH認証を機能させることができます。システム設定のコンテキストをホームディレクトリ(restorecon ~ -R)に復元することは、出発点として適切です。
ジョシュケリー

4

/ etc / ssh / sshd_configの設定が正しいことを確認します。

PKIのみの使用を強制し、パスワードが許可されないようにするには、次の行を見つけます。

#PasswordAuthentication yes 

ファイル内でコメントを外し、設定します

PasswordAuthenticate no

また、設定のバランスを読み、それらが意味をなすようにします。特に、DSAは危険にさらされていることがわかっているため、RSAキーを使用するようにしてください。


11
パスワード認証を無効にする方法を説明しています。これは、公開キー認証を機能させるのに役立ちません(公開キーが最初に試行されます)。Andrew:公開鍵認証が機能することを確認するまで、パスワード認証を無効にしないでください!
ジル 'SO-悪であるのをやめる'

2

この問題の考えられる原因の1つは、DSAキーを持っているが、SSH(明らかに)デフォルトでRSAキーを要求することです。16.04にアップグレードすると問題が発生しました。ここで詳細を確認できますが、簡単な答えは次のとおり~/.ssh/configです。

PubkeyAcceptedKeyTypes ssh-dss


1

2つの異なるマシン間の通信のトラブルシューティングが必要なため~/.ssh、クライアント側に2つの秘密キーがありました。

各サーバーホストをそれぞれの秘密キーで構成する代わりに~/.ssh/identity、すべてのホストに対してセカンダリ(およびこの場合は間違った)キーを構成しました。

Host *
IdentityFile ~/.ssh/identity_b

修正~/.ssh/identityにより問題が解決しました:

Host a
IdentityFile ~/.ssh/identity_a
Host b
IdentityFile ~/.ssh/identity_b

0

私はちょうど同じ問題を抱えていましたchmodが、~/.ssh/authorized_keysファイルの所有権を持っていないことが判明したため、アクセス許可を変更しても助けにはなりませんでした。.sshディレクトリの所有権は次の方法で変更できます。

sudo chown -R "$USER" ~/.ssh

-1

どういうわけかこれは私のために働いた:

root @ kaiser:〜#vim / etc / ssh / sshd_config

この行をyesからnoに変更します28 StrictModes no

再試行する

sysadmin @ suselinux1:〜> con sysadmin kaiser Ubuntu 12.04.1 LTS(GNU / Linux 3.2.0-25-generic i686)へようこそ

最終ログイン:金11月9日15:40:11 2012年10.1.3.25からsysadmin @ kaiser:〜$ date vie nov 9 17:53:11 CST 2012 sysadmin @ kaiser:〜$


3
それが何をするのか、なぜそれが機能するのかを知らずに何かをすることは受け入れられるかもしれませんが、同じことを提案することは悪いことです。
マヘシュ

2
同意した。これは、より良い作成するためのインセンティブも聞かせてsshd正確に「素敵な土曜日の読書」カテゴリに分類されていないドキュメントを、
code_monk
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.