From 401f9e3e79162ca0c837ab60316deb9fff9e72b8 Mon Sep 17 00:00:00 2001 From: morit02 <morit02@mi.fu-berlin.de> Date: Thu, 18 Jan 2024 12:07:52 +0100 Subject: [PATCH] Add SSH Key commands/info - How to create a SSH Key - How to use a SSH Key for authentication --- README.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/README.md b/README.md index 458eaa6..b8fb6f6 100644 --- a/README.md +++ b/README.md @@ -965,3 +965,55 @@ In diesem Fall gibt es bereits ein **lokales** Git Repository auf dem Gerät, da +## SSH Authentifizierung +Anstatt für jeden Zugriff auf das remote Repository immer den jeweiligen **Benutzer** und das zugehörige **Password** einzugeben, kann ein **SSH Key** verwendet werden.\ +Dazu wird auf dem **lokalen Gerät** ein **SSH Key erstellt**. (Es werden zwei Keys erstellt: ein **öffentlicher** (public) und ein **privater** (private) Schlüssel)\ +Der **öffentliche** Schlüssel wird auf der **Plattform** für die remote Repository **hinterlegt**. + + +**Folgende Schritte sind notwendig:** +1. Erstellen eines SSH Keys + ``` + ssh-keygen -t ed25519 -C "<E-Mail Adresse>" -f ~/.ssh/id_example + ``` + > Es wird ein **öffentlicher** (public - `.pub`) und ein **privater** (private) Schlüssel erstellt.\ + > **Optionen:** + > - `-t` zum angeben des verwendeten **SSH Typen** - [SSH Typen für GitLab](https://docs.gitlab.com/ee/user/ssh.html#supported-ssh-key-types) + > - `-C` zum hinzufügen eines **Kommentars** (zum Beispiel die genutzte E-Mail Adresse auf der Plattform) + > - `-f` zum festlegen des **Speicherortes** und **Names** des Keys (hier `id_example`) +2. **Privaten** (private) SSH Key zum ssh-agent hinzufügen + - SSH-Agent starten + ``` + eval $(ssh-agent -s) + ``` + - **Privaten** (private) SSH Key hinzufügen + ``` + ssh-add ~/.ssh/id_example + ``` +3. SSH-Client konfigurieren (bei mehreren SSH-Keys) + - Bearbeiten des `~/.ssh/config` Dokuments + ``` + # Beispiel Konfiguration für GitLab + HOST gitlab.com + PreferredAuthentications publickey + IdentityFile ~/.ssh/id_example + ``` +4. **Öffentlichen** (public) SSH Key zur Plattform hinzufügen\ + **Schritte für GitLab:** + - `Edit profile` + - `SSH Keys` + - `Add new key` + - Einfügen des **öffentlichen** (public) Key mit SSH Typen\ + Beispiel: `ssh-ed25519 AA..` + - `Add key` +5. Repository mit SSH clonen\ + Um den SSH Key zu verwenden, muss das Repository über SSH geclont werden.\ + Die aktuelle remote URL kann mit dem folgenden Befehl angezeigt werden: + ``` + git remote -v + ``` + + + + + -- GitLab