サーバーパスワードを入力せずに自動SSHログインを設定しました。
cd ~/.ssh
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub tim@server1
サーバーで実行されます。
後で他のサーバーで同じことをしました。
ssh-copy-id -i ~/.ssh/id_rsa.pub tim@server2
すぐに発生しますssh tim@server2
が、まだパスワードが必要です。私は何が間違っていましたか? 2番目のサーバーで正常に設定できないのはなぜですか? (2番目のサーバーはkerberosとAndrewファイルシステムを実行します。)
$ ssh -v tim@server2
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to server2 [...] port 22.
debug1: Connection established.
debug1: identity file /home/tim/.ssh/id_rsa type 1
debug1: identity file /home/tim/.ssh/id_rsa-cert type -1
debug1: identity file /home/tim/.ssh/id_dsa type -1
debug1: identity file /home/tim/.ssh/id_dsa-cert type -1
debug1: identity file /home/tim/.ssh/id_ecdsa type -1
debug1: identity file /home/tim/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/tim/.ssh/id_ed25519 type -1
debug1: identity file /home/tim/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH_5* compat 0x0c000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<3072<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA xxx
debug1: Host 'server2' is known and matches the RSA host key.
debug1: Found key in /home/tim/.ssh/known_hosts:70
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password,keyboard-interactive
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information
No Kerberos credentials available
debug1: Unspecified GSS failure. Minor code may provide more information
No Kerberos credentials available
debug1: Unspecified GSS failure. Minor code may provide more information
debug1: Unspecified GSS failure. Minor code may provide more information
No Kerberos credentials available
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/tim/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password,keyboard-interactive
debug1: Trying private key: /home/tim/.ssh/id_dsa
debug1: Trying private key: /home/tim/.ssh/id_ecdsa
debug1: Trying private key: /home/tim/.ssh/id_ed25519
debug1: Next authentication method: keyboard-interactive
Password:
私はDiffie-Hellmanキーを使ってAnthonの方法を試しましたが、それでもパスワードの入力を求められます。
$ cd ~/.ssh
$ ssh-keygen -t dsa
$ ssh-copy-id -i ~/.ssh/id_dsa.pub tim@server2
$ ssh -v tim@server2
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to server2 [...] port 22.
debug1: Connection established.
debug1: identity file /home/tim/.ssh/id_rsa type 1
debug1: identity file /home/tim/.ssh/id_rsa-cert type -1
debug1: identity file /home/tim/.ssh/id_dsa type 2
debug1: identity file /home/tim/.ssh/id_dsa-cert type -1
debug1: identity file /home/tim/.ssh/id_ecdsa type -1
debug1: identity file /home/tim/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/tim/.ssh/id_ed25519 type -1
debug1: identity file /home/tim/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH_5* compat 0x0c000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<3072<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA ...
debug1: Host 'server2' is known and matches the RSA host key.
debug1: Found key in /home/tim/.ssh/known_hosts:70
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password,keyboard-interactive
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information
No Kerberos credentials available
debug1: Unspecified GSS failure. Minor code may provide more information
No Kerberos credentials available
debug1: Unspecified GSS failure. Minor code may provide more information
debug1: Unspecified GSS failure. Minor code may provide more information
No Kerberos credentials available
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /home/tim/.ssh/id_dsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password,keyboard-interactive
debug1: Offering RSA public key: /home/tim/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password,keyboard-interactive
debug1: Trying private key: /home/tim/.ssh/id_ecdsa
debug1: Trying private key: /home/tim/.ssh/id_ed25519
debug1: Next authentication method: keyboard-interactive
Password:
答え1
2番目のサーバーがAFS(Andrew File System)を使用していると述べました。
まだ使用していませんが、AFSはKerberosで保護されたファイルシステムであり、機能するにはKerberosチケットが必要であることを知っています。これは、ホームディレクトリにアクセスするためにサイトのKerberosゾーンにログインする必要があることを意味します。
ログインにパスワードを使用している場合は、server2
PAMを介してKerberosゾーンにログインするように設定されている可能性があります。ただし、SSHキーを使用すると、server2
これを行うために必要な情報を取得できず、ホームディレクトリにアクセスできません。
幸いなことにssh -v
、あなたの質問の結果はあなたのサーバーで認証が有効になっているとGSSAPI
推測することができます。そのゾーンに有効なKerberosチケットがある場合は、パスワードのないログインを実行できます。以下を行います。
ログイン
server2
してklist
プログラムを実行してみてください。これにより、次の内容が返されます。Ticket cache: FILE:/tmp/krb5cc_2000 Default principal: [email protected] Valid starting Expires Service principal 28-05-15 15:01:31 29-05-15 01:01:31 krbtgt/[email protected] renew until 29-05-15 15:01:28 28-05-15 15:02:04 29-05-15 01:01:31 IMAP/[email protected] renew until 29-05-15 15:01:28
で始まる行を見つけます
Default principal:
。 Kerberosプリンシパルが何であるかを知らせます(上記の例では[email protected]
)。これを書き留めてください。これは電子メールアドレスではなく、大文字と小文字を区別します。つまり、本文はで終わりEXAMPLE.ORG
ませんexample.org
。- クライアントコンピュータで、
kinit
プリンシパル名(たとえば、上記の例ではこの名前)で実行します。すべてが順調に進んでいる場合は、今すぐ実行すると、ローカルコンピュータにチケットキャッシュがあることがわかります。kinit [email protected]
klist
- 今すぐ実行すると
ssh -K server2
ログインでき、システムにパスワードを要求しないでください。
Kerberosの仕組みにより、チケットキャッシュの効果は限られています。ゾーンマネージャが設定した有効期間(通常約10時間程度)より長い有効期間を持つチケットキャッシュは要求できません。チケットが期限切れになったら、もう一度kinit
実行してパスワードを再入力する必要があります。
答え2
次のコマンドを使用してserver2に接続しようとする必要があります。
ssh -v tim@server2
同じサーバーと比較して、このサーバーに接続すると、server1
2つのサーバーがどれだけ異なるかを正確に知ることができます。
/etc/ssh/sshd_config
両方のコンピュータに違いがある可能性が高いです。アクセシビリティの問題がある場所server2
や場所~/.ssh
(十分に制限されていません)
出力は確認のために-v
RSA秘密鍵を提供したことがわかりますが、Diffie-Hellmanだけをサポートしているよう/home/tim/.ssh/id_rsa
ですserver2
(試行が /home/tim/.ssh/id_dsa
存在しない可能性があります)。
答え3
SSHを試みるクライアントコンピュータに次のエントリを追加します。
構成ファイル:/etc/ssh/ssh_config
GSSAPIAuthentication no
これにより、そのマシンにSSHで接続できます。
ファイルに対する編集権限がない場合は、追加することもできます。
Host *
GSSAPIAuthentication no
~/.ssh/config
(ファイルがない場合は作成)
答え4
非常に似た問題があり、解決しました。
引き続きパスワードを使用してログインすると、追加の警告が表示されます。
Remote: Ignored authorized keys: bad ownership or modes for directory /home/myusername/.ssh
よくある間違いは、クライアントとサーバーの両方で正しい権限に変更することを忘れてしまうことです。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_key
gssapiに関連するすべては赤ニシンです。
根本原因は、公開鍵を使用して接続しようとしたときに問題が発生しました。
公開鍵 - > gssapi-keyex、gssapi-with-mic - >パスワード
デバッグファイルはSSHのバージョンが異なるため、私のファイルとは異なるように見えますが、次の行を見てください。
debug1: Roaming not allowed by server
まず、フォルダとファイルに対する権限を確認しようとします。