ssh-copy-idが機能しません


19

CentOS 5.4でパスワードなしのSSHログインを設定しようとしています。

  1. クライアントでRSA公開キーを生成しました。
  2. クライアントからサーバーへのssh-copy-id。
  3. 検証済みの〜/ .ssh / authorized_keysにはクライアントキーが含まれています。

クライアントはまだパスワードの入力を求められます。私は何を取りこぼしたか?

ありがとう。

編集:アドバイスに従ってssh_configと権限をチェックしました。これはクライアントからのデバッグ情報です:

debug2: key: /home/saguna/.ssh/identity ((nil))
debug2: key: /home/saguna/.ssh/id_rsa (0x2b31921be9a0)
debug2: key: /home/saguna/.ssh/id_dsa ((nil))
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup gssapi-with-mic
debug3: remaining preferred: publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug3: Trying to reverse map address 192.168.1.75.
debug1: Unspecified GSS failure.  Minor code may provide more information
Unknown code krb5 195

debug1: Unspecified GSS failure.  Minor code may provide more information
Unknown code krb5 195

debug1: Unspecified GSS failure.  Minor code may provide more information
Unknown code krb5 195

debug2: we did not send a packet, disable method
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/saguna/.ssh/identity
debug3: no such identity: /home/saguna/.ssh/identity
debug1: Offering public key: /home/saguna/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Trying private key: /home/saguna/.ssh/id_dsa
debug3: no such identity: /home/saguna/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
saguna@192.168.1.75's password: 

私もこれを取得:(
マットジョイナー

回答:


19

9/10回は、〜/ .ssh / authorized_keysが適切なモードにないためです。

chmod 600 ~/.ssh/authorized_keys


5
これが誰かにとってうまくいかない場合は、@ Gillesの答えも見てください。特に、ホーム~/.ssh以外のユーザーはホームとディレクトリに書き込みできません。
オストロカッハ

これは古いことは知っていますが、@ centicに感謝します。私は自分の許可が正しいと確信していましたが、$ HOMEと.ssh /ディレクトリをチェックすることは決してありませんでした。
jdferreira

私のために働いた。ありがとう!
イヴァンコフ

12

/ etc / ssh / sshd_configをチェックして、キーによる認証を許可します。次のようなものが含まれている必要があり、行にコメントがないことを確認してください。

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

PS:ファイルを変更した後にsshdを再起動することを忘れないでください(/etc/init.d/sshd restart)


Patkos Csabaの答えに加えて、ローカルおよびリモートの〜/ .sshフォルダーの権限を確認してください。

私の場合、AuthorizedKeysFileはコメントアウトされ、にも絶対パスを使用する必要がありましたauthorized_keys
アンドリュー14年

「認証エージェントへの接続を開けませんでした」と表示されます。ssh-addを試みるとき
マンティコア

これは、選択した答えでなければなりません
フランシスコタピア

たぶん、あなたはコメントを理解していません。コメントアウトされた行は、デフォルト値を示しています。デフォルト値が必要な場合は、コメントを外す必要はありません。デフォルト値をオーバーライドする場合にのみ、プロパティのコメントを解除する必要があります。
クリアライト

5

私のシステムでは、問題はユーザーディレクトリ(/ home / username)に間違ったパーミッションが設定されていることでした。それはそうでdrwxr-x-w-あり、そうである必要がありましたdrwxr-xr-x(所有者だけに書き込み許可が与えられています)。解決策は、chmodを使用することでした。

sudo chmod 0755 /home/username

1
うん!私のために働いた。sshはパスワードのプロンプトを表示していました。許可を失ったからです。
クリアライト

4

私はここの専門家ではありませんが、そのような問題に出くわしました。他のすべての提案に加えて、ここに私の2セントがあります。

時々ssh-copy-id、間違ったキーをリモートサーバーにコピーする(複数のキーがある場合、および/またはキーファイルにデフォルト以外の名前を使用している場合に発生する可能性があります)または認証エージェントが正しく構成されていません。

以下はmanページからの引用です:

-iオプションを指定すると、ssh-agentにキーがあるかどうかに関係なく、IDファイル(デフォルトは〜/ .ssh / id_rsa.pub)が使用されます。それ以外の場合、次の場合:ssh-add -Lは出力を提供し、IDファイルに優先してそれを使用します。

だから基本的にあなたはそれをチェックしたい:

  • システム認証エージェント(通常はssh-agent)は、使用する予定のキーを確認します(ssh-add -L出力を確認します)
    • 目的のキーが表示されない場合は、ssh-addを使用して追加します
  • ssh-copy-idリモートマシンに同じ鍵をコピーした(単にパスワードを使用してリモートサーバにログインし、内容を確認してください~/.ssh/authorized_keys
    • リモートサーバーに目的のキーが表示されない場合は、ssh-copy-idコピーするキーを暗黙的に指定できます。ssh-copy-id -i ~/.ssh/some_public_key

お役に立てば幸いです。


1
あなたはそれを打ちました!掘り、私の ssh-copy-id問題は次のとおりですDEFAULT_PUB_ID_FILE=$(ls -t ${HOME}/.ssh/id*.pub 2>/dev/null | grep -v -- '-cert.pub$' | head -n 1)、アルファベット最初のキーをデフォルトになる-私の場合は私が持っていたid_boot2docker.pub(明らかにboot2dockerのSSHのもののデフォルトの名前です)。さまざまなssh-copy-id実装がたくさんあるようです。鉱山はから来ましたbrew install ssh-copy-id。これは、openssh-portableから取得されます。私の manページには、明示的に...この動作を言及
クリスチャンUlbrich

3

最も一般的な問題は、サーバー側の無効なアクセス許可です。ホームディレクトリのいずれもを確認していない、~/.ssh~/.ssh/authorized_keys誰でも書き込み可能ですが、あなたは(特に、彼らはグループ書き込み可能であってはなりません)。

それが問題でない場合は、実行ssh -vvv serverして、会話のクライアントのビューを見てください。特に、クライアントがサーバーでキーを試行していることを確認してください。


ありがとうございました!!!私はなぜ理解していないが、ホームディレクトリ~/.ssh~/.ssh/authorized_keys誰もが、あなたによって書き込み可能にすることはできません。
オストロカッハ


1

私は他の修正を試みましたが、他の人が書き込みできないようにホームディレクトリを変更する必要があることがわかりました。ホームディレクトリは777でした。755に変更しました。


1
@dulcanaを歓迎します。彼はパスワードなしのsshログインを設定しようとします。許可を755に変更すると、問題を解決するのにどのように役立つでしょうか。
フランシスコタピア

@FranciscoTapiaは、sshdが、他のユーザーがauthorized_keysファイルを悪意を持って作成できなかったことを保証するためです。グループまたは他のユーザーがファイルまたは親を書き込むことができるsshキーによるログインを拒否します。他の回答もこれに言及しています。
アンヘル

0

私の場合、/ etc / ssh / sshd_configには次のパラメーターが含まれていました。

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys2

しかし、ssh-copy-idはauthorized_keysという名前のファイルを作成したため、エントリを新しい名前に変更する必要がありました。廃止されたauthorized_keys2の詳細


0

新しいCentOS 7のOmer Daganの回答を補完するものとして、以下を使用します。

journalctl -f -u sshd

サーバーのsshdログを確認してください。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.