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.
xxxxxxxxxxtest@geraet: $ sudo apt install git
Schritt 1: Verzeichnis anlegen
xxxxxxxxxxtest@geraet: $ mkdir git
Schritt 2: In das Verzeichnis wechseln
xxxxxxxxxxtest@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
xxxxxxxxxxtest@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
xxxxxxxxxxtest@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:
xxxxxxxxxxtest@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.
xxxxxxxxxxtest@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
xxxxxxxxxxtest@geraet: $ eval "$(ssh-agent -s)"Agent pid 4669
Schlüssel hinzufügen
xxxxxxxxxxtest@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:
xxxxxxxxxxssh-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:
xxxxxxxxxxidentity added: /home/nutzer/.ssh/private-key (e-mail)
Alternative 2:
Eintrag in der ~/.bashrc:
xxxxxxxxxxeval "$(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:
xxxxxxxxxxAgent pid XXXXXIdentity added: /home/nutzer/.ssh/private-key (e-mail) = schlüssel1Identity added: /home/nutzer/.ssh/private-key (e-mail) = schlüssel2
Alternative 3:
xxxxxxxxxxtest@geraet: $ sudo apt install keychain
In der .bashrc eintragen:
xxxxxxxxxxkeychain ~/.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
xxxxxxxxxxtest@geraet:~/git/beispiel$ git add *.*
Änderungen bestätigen und Version angeben
xxxxxxxxxxtest@geraet:~/git/beispiel$ git commit
Daten übertragen
xxxxxxxxxxtest@geraet:~/git/beispiel$ git push git@github.com:nutzer/repository.git
Ein vorhandenes Archiv wird auf den eigenen Rechner übertragen:
xxxxxxxxxxgit 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
