[[usersetup]]
== Initial Login
It's time to exit the gerrit2 account as you now have Gerrit running on your
host and setup your first workspace.

Start a shell with the credentials of the account you will perform
development under.

Check whether there are any ssh keys already. You're looking for two files,
id_rsa and id_rsa.pub.

----
  user@host:~$ ls .ssh
  authorized_keys  config  id_rsa  id_rsa.pub  known_hosts
  user@host:~$
----

If you have the files, you may skip the key generating step.

If you don't see the files in your listing, your will have to generate rsa
keys for your ssh sessions:

=== SSH key generation

*Please don't generate new keys if you already have a valid keypair!*
*They will be overwritten!*

----
  user@host:~$ ssh-keygen -t rsa
  Generating public/private rsa key pair.
  Enter file in which to save the key (/home/user/.ssh/id_rsa):
  Created directory '/home/user/.ssh'.
  Enter passphrase (empty for no passphrase):
  Enter same passphrase again:
  Your identification has been saved in /home/user/.ssh/id_rsa.
  Your public key has been saved in /home/user/.ssh/id_rsa.pub.
  The key fingerprint is:
  00:11:22:00:11:22:00:11:44:00:11:22:00:11:22:99 user@host
  The key's randomart image is:
  +--[ RSA 2048]----+
  |     ..+.*=+oo.*E|
  |      u.OoB.. . +|
  |       ..*.      |
  |       o         |
  |      . S ..     |
  |                 |
  |                 |
  |          ..     |
  |                 |
  +-----------------+
  user@host:~$
----

=== Registering your key in Gerrit

Open a browser and enter the canonical url of your Gerrit server.  You can
find the url in the settings file.

----
  gerrit2@host:~$ git config -f ~/gerrit_testsite/etc/gerrit.config gerrit.canonicalWebUrl
  http://localhost:8080/
  gerrit2@host:~$
----

Register a new account in Gerrit through the web interface with the
email address of your choice.

The default authentication type is OpenID.  If your Gerrit server is behind a
proxy, and you are using an external OpenID provider, you will need to add the
proxy settings in the configuration file.

----
  gerrit2@host:~$ git config -f ~/gerrit_testsite/etc/gerrit.config --add http.proxy http://proxy:8080
  gerrit2@host:~$ git config -f ~/gerrit_testsite/etc/gerrit.config --add http.proxyUsername username
  gerrit2@host:~$ git config -f ~/gerrit_testsite/etc/gerrit.config --add http.proxyPassword password
----

Refer to the Gerrit configuration guide for more detailed information about
link:config-gerrit.html#auth[authentication] and
link:config-gerrit.html#http.proxy[proxy] settings.

The first user to sign-in and register an account will be
automatically placed into the fully privileged Administrators group,
permitting server management over the web and over SSH.  Subsequent
users will be automatically registered as unprivileged users.

Once signed in as your user, you find a little wizard to get you started.
The wizard helps you fill out:

* Real name (visible name in Gerrit)
* Register your email (it must be confirmed later)
* Select a username with which to communicate with Gerrit over ssh+git. Note
that once saved, the username cannot be changed.

* The server will ask you for an RSA public key.
That's the key we generated above, and it's time to make sure that Gerrit knows
about our new key and can identify us by it.

----
  user@host:~$ cat .ssh/id_rsa.pub
  ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1bidOd8LAp7Vp95M1b9z+LGO96OEWzdAgBPfZPq05jUh
  jw0mIdUuvg5lhwswnNsvmnFhGbsUoXZui6jdXj7xPUWOD8feX2NNEjTAEeX7DXOhnozNAkk/Z98WUV2B
  xUBqhRi8vhVmaCM8E+JkHzAc+7/HVYBTuPUS7lYPby5w95gs3zVxrX8d1++IXg/u/F/47zUxhdaELMw2
  deD8XLhrNPx2FQ83FxrjnVvEKQJyD2OoqxbC2KcUGYJ/3fhiupn/YpnZsl5+6mfQuZRJEoZ/FH2n4DEH
  wzgBBBagBr0ZZCEkl74s4KFZp6JJw/ZSjMRXsXXXWvwcTpaUEDii708HGw== John Doe@MACHINE
  user@host:~$
----

IMPORTANT: Please take note of the extra line-breaks introduced in the key above
for formatting purposes. Please be sure to copy and paste your key without
line-breaks.

Copy the string starting with ssh-rsa to your clipboard and then paste it
into the box for RSA keys. Make *absolutely sure* no extra spaces or line feeds
are entered in the middle of the RSA string.

Verify that the ssh connection works for you.

----
  user@host:~$ ssh user@localhost -p 29418
  The authenticity of host '[localhost]:29418 ([127.0.0.1]:29418)' can't be established.
  RSA key fingerprint is db:07:3d:c2:94:25:b5:8d:ac:bc:b5:9e:2f:95:5f:4a.
  Are you sure you want to continue connecting (yes/no)? yes
  Warning: Permanently added '[localhost]:29418' (RSA) to the list of known hosts.

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

  Hi user, you have successfully connected over SSH.

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

  git clone ssh://user@localhost:29418/REPOSITORY_NAME.git

  user@host:~$
----


GERRIT
------
Part of link:index.html[Gerrit Code Review]

SEARCHBOX
---------
