I have two non-root users in one Linux server. If I make a SSH connection(key-based authentication) to one particular SSH server under first user, then it succeeds:
/* debug messages removed for brevity */
debug1: Next authentication method: publickey
debug1: Offering public key: .ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 149
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '.ssh/id_rsa':
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Now under second user, where I specify the private key file with -i .ssh/SD, the key-based authentication does not succeed. All the SSH client debug messages are exactly the same until here:
/* debug messages removed for brevity */
debug1: Next authentication method: publickey
debug1: Trying private key: .ssh/SD
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '.ssh/SD':
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).
Why doesn't SSH client in second case offer the public key? This is a mandatory step in key-based authentication, isn't it?
-vvvfor more detailed debug information. It might be visible there.-vvvit printeddebug3: sign_and_send_pubkeyanddebug2: we sent a publickey packet, wait for replyafter thedebug1: read PEM private key done: type RSAline seen above.