Beiträge von Bioh4z4rd im Thema „Git Repo per SSH klonen“

    Da ich damit viel geschäftlich und Privat arbeite mal ein kurzer Hilfe + Erklärversuch von mir.


    Git arbeitet im Prinzip mit Kopien von Repositories (Versionsverwalteten Datengräbern).


    Bei dir ist es vermutlich so, dass das Hauptrepository, dass verwendet wird auf deinem Webserver (Server) liegt.

    Der Entwickler hat vermutlich bei sich das Repository dort geklont, macht lokal seine Änderungen und über einen commit "speichert" er diese.

    Mit einem anschließenden "Push" kann er diese auf das Hauptrepository schieben. Wenn dann dort die Änderungen auch aktiv sind (branch, working copy usw. ist das ganze auch produktiv.).


    Aus welchem Grund du das Repository bei dir lokal Klonen sollst verstehe ich nicht aber kurz ein Beispiel von meinem Server:


    Auf dem Server liegt das Repository (im Dateiformat). Ich klone auf einem system per ssh:


    Code
    (deck@steamdeck ~)$ git clone ssh://bioh4z4rd@homeone:/srv/git/awesomewm.git
    Cloning into 'awesomewm'...
    remote: Enumerating objects: 199, done.
    remote: Counting objects: 100% (199/199), done.
    remote: Compressing objects: 100% (173/173), done.
    remote: Total 199 (delta 59), reused 106 (delta 9), pack-reused 0
    Receiving objects: 100% (199/199), 3.18 MiB | 2.85 MiB/s, done.
    Resolving deltas: 100% (59/59), done.


    SSH merkt sich wie von anderen angemerkt zu der Server Adresse den Fingerprint (im Endeffekt das "Gesicht"). Ändert sich dieses kommt die Fehlermeldung mit dem Hostkey. Der Fingerprint ist lokal in der Datei ~/.ssh/known_hosts gespeichert:


    Code
    deck@steamdeck ~)$ cat .ssh/known_hosts
    homeone ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILkrucHGIP0mftMU0eA4hsbFKbJvJBvlKbSz9Vwd+MPC


    Ich habe diesen kurz geändert und daraufhin wieder versucht zu klonen:



    Ich denke hier stehst du.


    Folgendes Schlage ich dir vor: Frage den Provider nach dem SSH host key. Diesen vertraust du, indem du den Eintrag für deinen server in der ~/.ssh/known_hosts änderst. Nichts anderes hier bitte.


    Dann sendest du dem Provider zusätzlich deinen sogenannten Public key. Ist in der Regel in ~/.ssh/id_ed25519.pub.
    Hast du keinen, dann generier ihn über "ssh-keygen -t ed25519". Das ist ein state of the art key und älteres Material sollte eher nicht verwendet werden.

    Ganz wichtig: Nur die .pub schicken. Die id_ed25519 ist im Grunde der Ausweis deines PCs.

    Dein Provider hinterlegt nun diesen Key als sogenannten "authorized_key" auf dem Server. ~/.ssh/authorized_keys ist der Pfad hierfür.

    Der Server erkennt den Fingerabdruck (Das Gesicht bzw. die Identität deines Computers) und erlaubt dir mit dem spezifizierten User sich einzuloggen.


    Sieht bei mir dann so aus:


    Code
    bioh4z4rd@homeone ~ % cat .ssh/authorized_keys 
    ssh-ed25519 AAAAC3NzaC1lZDI1NTEICHZEIGEUCHDOCHNICHTMEINEIDENTITY deck@steamdeck


    Ab dem Moment kannst du Klonen / einloggen per SSH ohne Passwort mit deinem PC, du hast den korrekten Host "gemerkt".

    Es gibt eigentlich nur 2 Fälle in denen sich der HostKey ändert:

    1. Ein Idiot war am Werk und hat einen neuen Key generiert oder den PC neu aufgesetzt

    2. Der PC ist ein neuer / anderer.


    Bist du dir sicher, dass du wirklich mit deinem Hoster redest?