Blog Digitalgesellschaft Verwaltungsbetrieb Textarchiv Textarchiv Walter Kirk (✝) Impressum
Datenaustausch mit GitHub via SSH
VorbemerkungGit - The stupid content trackerInstallationEinrichtungGit-GUISecure ShellInstallationEinrichtungSchlüsselpaar erstellenSchlüssel anmeldenAutomatikGithubPrivater Schlüssel eintragenÄnderungen übertragenKlonenQuelleCheckliste Git via SSH
Wer GitHub als digitales Archiv nutzt (Repository), wird es zu schätzen wissen, dass der Datenaustausch auch mit einer sichereren Verbindung erfolgen kann.
In diesem Fall bietet sich das kryptographische Netzwerkprotokoll Secure Shell (SSH) für den Datenverkehr an.
Die hier beschriebene Vorgehensweise ist auch für die Übertragung bei Bitbucket und GitLab und anderen Diensten entsprechend anwendbar.
xxxxxxxxxx
test@geraet: $ sudo apt install git
Schritt 1: Verzeichnis anlegen
xxxxxxxxxx
test@geraet: $ mkdir git
Schritt 2: In das Verzeichnis wechseln
xxxxxxxxxx
test@geraet: $ cd git
Schritt 3: Repository manuell anlegen
Bei GitHub anmelden und ein digitales Archiv anlegen: New. Sodann den Code für SSH kopieren
Schritt 4: Git-Verbindung anlegen
xxxxxxxxxx
test@geraet:~/git$ git remote add origin git@github.com:nutzer/archiv.git
Die URL bei GitHub ist den eigenen Verhältnissen entsprechend anzupassen.
Schritt 5: Daten in Git
xxxxxxxxxx
test@geraet:~/git$ git config --global user.email "e-mail"
test@geraet:ie~/git$ git config --global user.name "user"
E-Mail und User sind den eigenen Verhältnissen bei GitHub anzupassen.
Die graphischen Benutzeroberflächen Gitk und Git-GUI lassen sich aus den Repositories der Distribution installieren:
xxxxxxxxxx
test@geraet: $ sudo apt install gitk git-gui
Das Netzwerkprotokoll ssh ist regelmäßig vorinstalliert.
Tipp
Die Installation von Open-SSH mit dem Befehl ssh ist für den Datentransfer hier nicht zwingend erforderlich.
xxxxxxxxxx
test@geraet: $ ssh-keygen -t ed25519 -C "e-mail"
Die E-Mail ist entsprechend anzupassen.
Dabei werden abgefragt:
- Schlüsselname und Speicherort
- Passwort: nichts angeben
Tipp
In diesem Fall ist es empfehlenswert auf ein Passwort zu verzichten.
Es werden ein privater und ein öffentlicher Schlüssel erstellt:
- privat: -ssh, z.B. github-ssh
- öffentlich: .pub, z.B. github-ssh.pub
Sodann ist der Schlüssel bei einem SSH-Agenten anzumelden:
Agent starten
xxxxxxxxxx
test@geraet: $ eval "$(ssh-agent -s)"
Agent pid 4669
Schlüssel hinzufügen
xxxxxxxxxx
test@geraet: $ ssh-add /home/nutzer/.verzechnis/keyname
Die Daten sind entsprechend anzupassen.
Damit man nicht immer nach jedem Startvorgang den ssh-key anmelden muss, wird in der ~/.bashrc folgende Zeile angehängt:
Alternative 1:
xxxxxxxxxx
ssh-add -L|grep identities > /dev/null && ssh-add /home/nutzer/.ssh-git/private-key
Die Daten sind entsprechend anzupassen.
Beim ersten Öffnen eines Terminal wird angezeigt:
xxxxxxxxxx
identity added: /home/nutzer/.ssh/private-key (e-mail)
Alternative 2:
Eintrag in der ~/.bashrc:
xxxxxxxxxx
eval "$(ssh-agent -s)"
ssh-add -L|grep identities > /dev/null && ssh-add ~/.ssh/schlüssel1 \
~/.ssh/schlüssel2
Beim ersten Öffnen eines Terminals wird angezeigt:
xxxxxxxxxx
Agent pid XXXXX
Identity added: /home/nutzer/.ssh/private-key (e-mail) = schlüssel1
Identity added: /home/nutzer/.ssh/private-key (e-mail) = schlüssel2
Alternative 3:
xxxxxxxxxx
test@geraet: $ sudo apt install keychain
In der .bashrc eintragen:
xxxxxxxxxx
keychain ~/.ssh/schlüssel1 ~/.ssh/schlüssel2
. ~/.keychain/`uname -n`-sh
Beim erste Öfnnen eines Terminals wird angezeigt:
xxxxxxxxxx
* keychain 2.8.5 ~ http://www.funtoo.org
* Found existing ssh-agent: XXXX
* Known ssh key: ~/schlüssel1
* Known ssh key: ~/schlüssel2
Quelle: Tip #3 Keychain - Manage ssh keys Quick tipps
Der Inhalt der Schlüsseldatei mit dem privaten Schlüssel ist zu kopieren und in GitHub für das Nutzerkonto entsprechend der gegebenen Hinweise einzufügen und zu speichern.
Wenn der Schlüssel eingetragen ist, enthält der Nutzer eine Mitteilung unter seiner E-Mail.
Zur Datenübertragung ist in das örtliche Archivverzeichnis zu wechseln und ein Terminal zu öffnen:
Geänderte Daten hinzufügen
xxxxxxxxxx
test@geraet:~/git/beispiel$ git add *.*
Änderungen bestätigen und Version angeben
xxxxxxxxxx
test@geraet:~/git/beispiel$ git commit
Daten übertragen
xxxxxxxxxx
test@geraet:~/git/beispiel$ git push git@github.com:nutzer/repository.git
Ein vorhandenes Archiv wird auf den eigenen Rechner übertragen:
xxxxxxxxxx
git clone git@github.com:nutzer/archiv.git
Die URL bei GitHub ist den eigenen Verhältnissen entsprechend anzupassen.
Kirk, Wolfgang: Good Practice - 32: Git Repository verwalten mit GitHub und GitLab
Man Page
git: https://manpages.ubuntu.com/manpages/xenial/man1/git.1.html
Tutorial
git tuggtorial: https://manpages.ubuntu.com/manpages/trusty/man7/gittutorial.7.html
Wiki
ssh: https://wiki.ubuntuusers.de/SSH/
1. SSH
- Schlüsselpaar generieren: kein Passwort vergeben
- Schlüssel bei SSH-Agenten hinzufügen: Dieser Vorgang ist ggf. zu automatisieren.
2. GitHub
- Archiv manuell erstellen oder klonen
- SSH-Schlüssel eintragen
3. Git
- installieren
- einrichten
- Daten übertragen
- ggf. GUI installieren
Hinweis
Diese Vorgehensweise ist auch bei der Nutzung von Bitbucket, GitLab und anderen Diensten entsprechend anwendbar.
Wolfgang Kirk
Veröffentlicht: 2023-04-10 aktualisiert: 2024-02-29, 08:00 Uhr