0

I have two servers. Say A and B.

I ssh-copy-ided on both servers to each other.

And I can connect from A to B without password. But I failed to connect from B to A.

I found that audit log is different

B's log when connecting from A to B (success)
    ... (hostname=192.168.0.1, addr=192.168.0.1, terminal=sshd ref=success

A's log when connecting from B to A (failed)
    ... (hostname=?, addr=192.168.0.1, terminal=sshd ref=failed

Where should I look into?

Here comes what ssh -v showed.

$ ssh -v user@<a's ip address>
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to <a_ip_address> [a_ip_address] port 22.
debug1: Connection established.
debug1: identity file /home/user/.ssh/identity type -1
debug1: identity file /home/user/.ssh/id_rsa type 1
debug1: identity file /home/user/.ssh/id_dsa type -1
debug1: loaded 3 keys
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3
debug1: match: OpenSSH_4.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<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: Host '<a_ip_address>' is known and matches the RSA host key.
debug1: Found key in /home/<user>/.ssh/known_hosts:8
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: gssapi-with-mic
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

debug1: Next authentication method: publickey
debug1: Trying private key: /home/<user>/.ssh/identity
debug1: Offering public key: /home/<user>/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Trying private key: /home/<user>/.ssh/id_dsa
debug1: Next authentication method: password
user@<a_ip_address>'s password:
7
  • 1
    From B, run ssh -v A. The option -v means verbose. Copy that result to the text of your question so that we can see where it is failing. Commented Jan 19, 2015 at 7:19
  • 1
    From B, try: ssh -o GSSAPIAuthentication=no A. This suggestion comes from here. If that doesn't work, have a look at some of the suggestions here. Commented Jan 19, 2015 at 7:32
  • 1
    Some people who had similar error messages noted a bug with ssh-copy-id and permissions. See: serverfault.com/questions/464411/… Commented Jan 19, 2015 at 7:37
  • 1
    Remove the edit and add it as an answer. That way, other users will be able to find it and upvote it. Commented Jan 19, 2015 at 9:09
  • 1
    @JinKwon I just did that for you. And, yes, there is a simple way to select a previous edit: it is the rollback button. Commented Jan 19, 2015 at 20:43

2 Answers 2

2

The root cause of my problem is that the home directory, the .ssh directory, and its child files on the target server have a wrong permissions.

I discovered this issue by looking at messages in log files in /var/log such as secure, and audit/*.

2

To answer the questions asked, even though they turned out to not be the OP's actual problem, in case searchers are looking for that actual question:

  • sshd tries to determine the client's hostname if configuration option UseDNS is on. The upstream default for this was 'yes' until 6.8 in 2015-03 (just after the Q was posted), but distros or packages may change the default, and of course a sysadmin can always override the default. But the availability and/or correctness of the client hostname has no effect on public-key authentication, only some info in the log entries.

  • ssh-copy-id is so named because it copies a publickey file which implicitly identifies a user -- not a host -- and these files by default are named like id_rsa.pub id_dsa.pub id_ecdsa.pub id_ed25519.pub although this can be changed. A publickey file may (or may not) contain a comment that gives the user name, and by default ssh-keygen creates this comment as userid@hostname where the key is generated (which may differ from where the key is used for a connection), but this can be overridden or changed or removed.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.