转自https://review.gerrithub.io/Documentation/user-upload.html#configure_ssh
SSH
Each user uploading changes to Gerrit must configure one or more SSH public keys. The per-user SSH key list can be accessed over the web within Gerrit by Settings
, and then accessing the SSH Public Keys
tab.
Configuration
To register a new SSH key for use with Gerrit, paste the contents of your id_rsa.pub
or id_dsa.pub
file into the text box and click the add button. Gerrit only understands SSH version 2 public keys. Keys may be supplied in either the OpenSSH format (key starts with ssh-rsa
or ssh-dss
) or the RFC 4716 format (file starts with ---- BEGIN SSH2 PUBLIC KEY ----
).
Typically SSH keys are stored in your home directory, under ~/.ssh
. If you don’t have any keys yet, you can create a new one and protect it with a passphrase:
ssh-keygen -t rsa
Then copy the content of the public key file onto your clipboard, and paste it into Gerrit’s web interface:
cat ~/.ssh/id_rsa.pub
Tip
| Users who frequently upload changes will also want to consider starting an ssh-agent , and adding their private key to the list managed by the agent, to reduce the frequency of entering the key’s passphrase. Consult man ssh-agent , or your SSH client’s documentation, for more details on configuration of the agent process and how to add the private key. |
Testing Connections
To verify your SSH key is working correctly, try using an SSH client to connect to Gerrit’s SSHD port. By default Gerrit runs on port 29418, using the same hostname as the web server:
$ ssh -p 29418 sshusername@hostname **** 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://sshusername@hostname:29418/REPOSITORY_NAME.git Connection to hostname closed.
In the command above, sshusername
was configured as Username
on the Profile
tab of the Settings
screen. If it is not set, propose a name and use Select Username
to select the name.
To determine the port number Gerrit is running on, visit the special information URL http://'hostname'/ssh_info
, and copy the port number from the second field:
$ curl http://hostname/ssh_info hostname 29418
If you are developing an automated tool to perform uploads to Gerrit, let the user supply the hostname or the web address for Gerrit, and obtain the port number on the fly from the /ssh_info
URL. The returned output from this URL is always 'hostname' SP 'port'
, or NOT_AVAILABLE
if the SSHD server is not currently running.