parent
1038d37671
commit
81bfa925ed
|
@ -5,7 +5,7 @@ but you can also share or "push" your changes to other servers.
|
|||
Before you can push your changes to a GitLab server
|
||||
you need a secure communication channel for sharing information.
|
||||
GitLab uses Public-key or asymmetric cryptography
|
||||
which "encrypts" a communication channel by locking it with your "private key"
|
||||
which encrypts a communication channel by locking it with your "private key"
|
||||
and allows trusted parties to unlock it with your "public key".
|
||||
If someone does not have your public key they cannot access the unencrypted message.
|
||||
|
||||
|
@ -16,10 +16,13 @@ at the default location by opening a shell, or Command Prompt on Windows,
|
|||
and running the following command:
|
||||
|
||||
**Windows Command Prompt:**
|
||||
|
||||
```bash
|
||||
type %userprofile%\.ssh\id_rsa.pub
|
||||
```
|
||||
**GNU/Linux/Mac/PowerShell:**
|
||||
|
||||
**GNU/Linux / macOS / PowerShell:**
|
||||
|
||||
```bash
|
||||
cat ~/.ssh/id_rsa.pub
|
||||
```
|
||||
|
@ -27,78 +30,82 @@ cat ~/.ssh/id_rsa.pub
|
|||
If you see a string starting with `ssh-rsa` you already have an SSH key pair
|
||||
and you can skip the next step **Generating a new SSH key pair**
|
||||
and continue onto **Copying your public SSH key to the clipboard**.
|
||||
If you don't see the string or would like to generate a SSH key pair with a custom name
|
||||
continue onto the next step.
|
||||
If you don't see the string or would like to generate a SSH key pair with a
|
||||
custom name continue onto the next step.
|
||||
|
||||
## Generating a new SSH key pair
|
||||
|
||||
To generate a new SSH key, use the following command:
|
||||
1. To generate a new SSH key, use the following command:
|
||||
|
||||
**GNU/Linux/Mac/PowerShell:**
|
||||
```bash
|
||||
ssh-keygen -t rsa -C "$your_email"
|
||||
```
|
||||
**GNU/Linux / macOS:**
|
||||
|
||||
**Windows:**
|
||||
On Windows you will need to download
|
||||
[PuttyGen](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
|
||||
and follow this documentation
|
||||
[article](https://the.earth.li/~sgtatham/putty/0.67/htmldoc/Chapter8.html#pubkey-puttygen)
|
||||
to generate a SSH key pair.
|
||||
```bash
|
||||
ssh-keygen -t rsa -C "GitLab" -b 4096
|
||||
```
|
||||
|
||||
### Provide a file path
|
||||
**Windows:**
|
||||
|
||||
You will be prompted to input a file path to save your key pair to.
|
||||
On Windows you will need to download
|
||||
[PuttyGen](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
|
||||
and follow this [documentation article][winputty] to generate a SSH key pair.
|
||||
|
||||
If you don't already have an SSH key pair use the suggested path by pressing enter.
|
||||
Using the suggested path will allow your SSH client
|
||||
to automatically use the key pair with no additional configuration.
|
||||
1. Next, you will be prompted to input a file path to save your key pair to.
|
||||
|
||||
If you already have a key pair with the suggested file path you will need to input a new file path
|
||||
and declare what host this key pair will be used for in your `.ssh/config` file,
|
||||
see **Working with non-default SSH key pair paths** for more information.
|
||||
If you don't already have an SSH key pair use the suggested path by pressing
|
||||
enter. Using the suggested path will allow your SSH client
|
||||
to automatically use the key pair with no additional configuration.
|
||||
|
||||
### Provide a password
|
||||
If you already have a key pair with the suggested file path, you will need
|
||||
to input a new file path and declare what host this key pair will be used
|
||||
for in your `.ssh/config` file, see **Working with non-default SSH key pair paths**
|
||||
for more information.
|
||||
|
||||
Once you have input a file path you will be prompted to input a password to secure your SSH key pair.
|
||||
Note: It is a best practice to use a password for an SSH key pair,
|
||||
but it is not required and you can skip creating a password by pressing enter.
|
||||
1. Once you have input a file path you will be prompted to input a password to
|
||||
secure your SSH key pair. It is a best practice to use a password for an SSH
|
||||
key pair, but it is not required and you can skip creating a password by
|
||||
pressing enter.
|
||||
|
||||
If you want to change the password of your key, you can use the following command:
|
||||
`ssh-keygen -p <keyname>`
|
||||
>**Note:**
|
||||
If you want to change the password of your key, you can use `ssh-keygen -p <keyname>`.
|
||||
|
||||
## Copying your public SSH key to the clipboard
|
||||
1. The next step is to copy the public key as we will need it afterwards.
|
||||
|
||||
To copy your public key to the clipboard, use the appropriate code for you operating system below:
|
||||
To copy your public key to the clipboard, use the appropriate code for your
|
||||
operating system below:
|
||||
|
||||
**Windows Command Line:**
|
||||
```bash
|
||||
type %userprofile%\.ssh\id_rsa.pub | clip
|
||||
```
|
||||
**macOS:**
|
||||
|
||||
**Windows PowerShell:**
|
||||
```bash
|
||||
cat ~/.ssh/id_rsa.pub | clip
|
||||
```
|
||||
```bash
|
||||
pbcopy < ~/.ssh/id_rsa.pub
|
||||
```
|
||||
|
||||
**Mac:**
|
||||
```bash
|
||||
pbcopy < ~/.ssh/id_rsa.pub
|
||||
```
|
||||
**GNU/Linux (requires the xclip package):**
|
||||
|
||||
**GNU/Linux (requires xclip):**
|
||||
```bash
|
||||
xclip -sel clip < ~/.ssh/id_rsa.pub
|
||||
```
|
||||
```bash
|
||||
xclip -sel clip < ~/.ssh/id_rsa.pub
|
||||
```
|
||||
|
||||
## Adding your public SSH key to GitLab
|
||||
**Windows Command Line:**
|
||||
|
||||
Navigate to the 'SSH Keys' tab in you 'Profile Settings'.
|
||||
Paste your key in the 'Key' section and give it a relevant 'Title'.
|
||||
Use an identifiable title like 'Work Laptop - Windows 7' or 'Home MacBook Pro 15'.
|
||||
```bash
|
||||
type %userprofile%\.ssh\id_rsa.pub | clip
|
||||
```
|
||||
|
||||
If you manually copied your public SSH key make sure you copied the entire key
|
||||
starting with `ssh-rsa` and ending with your email.
|
||||
**Windows PowerShell:**
|
||||
|
||||
```bash
|
||||
cat ~/.ssh/id_rsa.pub | clip
|
||||
```
|
||||
|
||||
1. The final step is to add your public SSH key to GitLab.
|
||||
|
||||
Navigate to the 'SSH Keys' tab in you 'Profile Settings'.
|
||||
Paste your key in the 'Key' section and give it a relevant 'Title'.
|
||||
Use an identifiable title like 'Work Laptop - Windows 7' or
|
||||
'Home MacBook Pro 15'.
|
||||
|
||||
If you manually copied your public SSH key make sure you copied the entire
|
||||
key starting with `ssh-rsa` and ending with your email.
|
||||
|
||||
## Working with non-default SSH key pair paths
|
||||
|
||||
|
@ -113,21 +120,17 @@ Below are two example host configurations using their own key:
|
|||
# GitLab.com server
|
||||
Host gitlab.com
|
||||
RSAAuthentication yes
|
||||
IdentityFile ~/folder1/private-key-filename
|
||||
User mygitlabusername
|
||||
IdentityFile ~/.ssh/config/private-key-filename-01
|
||||
|
||||
# Private GitLab server
|
||||
Host gitlab.company.com
|
||||
RSAAuthentication yes
|
||||
IdentityFile ~/folder2/private-key-filename
|
||||
IdentityFile ~/.ssh/config/private-key-filename
|
||||
```
|
||||
|
||||
Note in the gitlab.com example above a username was specified
|
||||
to override the default chosen by OpenSSH (your local username).
|
||||
This is only required if your local and remote usernames differ.
|
||||
|
||||
Due to the wide variety of SSH clients and their very large number of configuration options,
|
||||
further explanation of these topics is beyond the scope of this document.
|
||||
Due to the wide variety of SSH clients and their very large number of
|
||||
configuration options, further explanation of these topics is beyond the scope
|
||||
of this document.
|
||||
|
||||
Public SSH keys need to be unique, as they will bind to your account.
|
||||
Your SSH key is the only identifier you'll have when pushing code via SSH.
|
||||
|
@ -152,13 +155,15 @@ If you want to add the same key to another project, please enable it in the
|
|||
list that says 'Deploy keys from projects available to you'. All the deploy
|
||||
keys of all the projects you have access to are available. This project
|
||||
access can happen through being a direct member of the project, or through
|
||||
a group. See `def accessible_deploy_keys` in `app/models/user.rb` for more
|
||||
information.
|
||||
a group.
|
||||
|
||||
Deploy keys can be shared between projects, you just need to add them to each project.
|
||||
Deploy keys can be shared between projects, you just need to add them to each
|
||||
project.
|
||||
|
||||
## Applications
|
||||
|
||||
### Eclipse
|
||||
|
||||
How to add your ssh key to Eclipse: https://wiki.eclipse.org/EGit/User_Guide#Eclipse_SSH_Configuration
|
||||
|
||||
[winputty]: https://the.earth.li/~sgtatham/putty/0.67/htmldoc/Chapter8.html#pubkey-puttygen
|
||||
|
|
Loading…
Reference in New Issue