:linkattrs:
= Permission denied (publickey)

With this error message an SSH command to Gerrit is rejected if the
SSH authentication is not successful.

The link:http://en.wikipedia.org/wiki/Secure_Shell[SSH,role=external,window=_blank] protocol can use
link:http://en.wikipedia.org/wiki/Public-key_cryptography[Public-key Cryptography,role=external,window=_blank]
for authentication.
In general configurations, Gerrit will authenticate you by the public keys
known to you. Optionally, it can be configured by the administrator to allow
for link:config-gerrit.html#sshd.kerberosKeytab[kerberos] authentication
instead.

In any case, verify that you are using the correct username for the SSH command
and that it is typed correctly (case sensitive). You can look up your username
in the Gerrit Web UI under 'Settings' -> 'Profile'.

If you are facing this problem and using an SSH keypair, do the following:

. Verify that you have uploaded your public SSH key for your Gerrit
  account. To do this go in the Gerrit Web UI to 'Settings' ->
  'SSH Public Keys' and check that your public SSH key is there. If
  your public SSH key is not there you have to upload it.
. Verify that you are using the correct private SSH key. To find out
  which private SSH key is used test the SSH authentication as
  described below. From the trace you should see which private SSH
  key is used.

Debugging kerberos issues can be quite hard given the complexity of the
protocol. In case you are using kerberos authentication, do the following:

. Verify that you have acquired a valid initial ticket. On a Linux machine, you
  can acquire one using the `kinit` command. List all your tickets using the
  `klist` command. It should list all principals for which you have acquired a
  ticket and include a principal name corresponding to your Gerrit server, for
  example `HOST/gerrit.mydomain.tld@MYDOMAIN.TLD`.
  Note that tickets can expire and require you to re-run `kinit` periodically.
. Verify that your SSH client is using kerberos authentication. For OpenSSH
  clients this can be controlled using the `GSSAPIAuthentication` setting.
  For more information see
  link:user-upload.html#configure_ssh_kerberos[SSH kerberos configuration].

== Test SSH authentication

To test the SSH authentication you can run the following SSH command.
This command will print out a detailed trace which is helpful to
analyze problems with the SSH authentication:

----
  $ ssh -vv -p 29418 john.doe@git.example.com
----

If the SSH authentication is successful you should find the following
lines in the output:

----
  ...

  debug1: Authentication succeeded (publickey).

  ...

  ****    Welcome to Gerrit Code Review    ****

  Hi John Doe, you have successfully connected over SSH.

  Unfortunately, interactive shells are disabled.
  To clone a hosted Git repository, use:

  git clone ssh://john.doe@git.example.com:29418/REPOSITORY_NAME.git

  ...
----


GERRIT
------
Part of link:error-messages.html[Gerrit Error Messages]

SEARCHBOX
---------
