Obsidian mit GitHub Repository per SSH synchronisieren

GitHub ist ein Plattform zur kollaborativen Softwareentwicklung auf der Dateien hoch und heruntergeladen werden können.
Über das Obsidian Plugin Obsidian Git kann diese Plattform zum hosten und für Backups von Obsidian-Notizen genutzt werden. Dafür werden die Notizen und alle Änderungen in einem eigenen privaten Repository gespeichert.

Das Lesen und Schreiben von Änderungen an den Notizen kann automatisiert und sicher über wahlweise HTTPS bzw. SSH erfolgen.

Nachfolgende Anleitung zeigt wie sich ein Obsidian Vaults mit einem GitHub Repository per SSH verbinden lässt.

Erstellung eines Key Pairs

Zur Absicherung der Verbindung wird ein Public/Private key pair benötigt. Für erhöhte Sicherheit wird der Zugriff auf den private key mit einer passphrase geschützt. Damit Anwendungsprogramme unkompliziert auf den private key zugreifen können wird dieser zum ssh-agent hinzugefügt.
Erzeugung Public/Private key pair mit passphrase

Authentifizierung gegenüber GitHub

Nutzung der Schlüssel zur Authentifizierung gegenüber GitHub
Hinterlegen des public key im GitHub Account

Konfigurieren von SSH

Das SSH config file liegt by default hier:
~/.ssh/config

Folgende Werte müssen eingetragen werden:

  host *
  UseKeychain yes
  AddKeysToAgent yes    
  IdentityFile ~/.ssh/id_ed25519

Anpassung der Datei-Zugriffsrechte des config Files damit Obsidian diese einlesen kann, siehe GitHub tip

4 2 1
r w x

6 = r +w

sudo chmod 600 ~/.ssh/config

Obsidian Vault als lokales Repository initialisieren

Das lokale Repository wird im Wurzelordner des Obsidian Vaults mit folgenden Befehlen erstellt:

git init
git add .
git -m "init"

Remote Repository auf GitHub erstellen

Sollen die Notizen nicht öffentlich zugängig sein, muss ein privates Repository erstellt werden. In .gitignore können Dateien und Ordner angegeben werden die nicht mit dem GitHub Repository synchronisiert werden sollen.
https://github.com/new

Das auf GitHub erstellte remote Repository mit dem im Obsidian Vault erstellen lokalen Repository verbinden. Anschließen mit push die Dateien einmalig vom Obsidian Vault in das Repository of GitHub schreiben:

git remote add origin git@github.com:USER-NAME:REPOSITORY-NAME.git
git push -u origin