Vergleich von SSH und HTTPS testen
In diesem Schritt werden wir den Unterschied zwischen der Verwendung der HTTPS- und SSH-Protokolle beim Interagieren mit einem entfernten Git-Repository untersuchen. Obwohl beide Protokolle das Abrufen und Übertragen von Code ermöglichen, verwenden sie unterschiedliche Authentifizierungsmethoden.
Wir haben bereits unser Remote origin
so konfiguriert, dass es HTTPS verwendet. Versuchen wir nun, das Klonen eines Repositories mit beiden Protokollen zu simulieren, um den Unterschied im URL-Format zu sehen.
Zunächst navigieren wir zurück in das Verzeichnis ~/project
:
cd ~/project
Jetzt simulieren wir das Klonen eines Repositories mit HTTPS. Wir verwenden die URL eines öffentlichen Repositories, das für das Klonen keine Authentifizierung erfordert.
git clone https://github.com/git/git.git git-https-test
Dieser Befehl klont das offizielle Git-Repository in ein neues Verzeichnis namens git-https-test
. Sie werden eine Ausgabe sehen, die den Klonvorgang anzeigt. Dies funktioniert, weil das Klonen eines öffentlichen Repositories über HTTPS normalerweise keine Anmeldeinformationen erfordert.
Jetzt simulieren wir das Klonen desselben Repositories mit dem SSH-Protokoll. Das SSH-URL-Format ist unterschiedlich und sieht normalerweise wie git@hostname:user/repo.git
aus.
git clone [email protected]:git/git.git git-ssh-test
Wenn Sie diesen Befehl ausführen, werden Sie wahrscheinlich eine Meldung sehen, die Sie zur Bestätigung der Authentizität des Hosts auffordert oder eine Fehlermeldung wegen fehlender Berechtigungen. Dies liegt daran, dass das Klonen über SSH die Authentifizierung mit SSH-Schlüsseln erfordert. Da wir in dieser Umgebung keine SSH-Schlüssel eingerichtet haben, wird die Verbindung fehlschlagen oder Sie werden zur Eingabe von Anmeldeinformationen aufgefordert.
Cloning into 'git-ssh-test'...
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6qU/mzgpTw4mSjJA9PMpTkCXPzQ7lPkLiA.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Sie können no
eingeben und Enter drücken, um den Verbindungsversuch abzulehnen.
Dies zeigt den wesentlichen Unterschied auf: HTTPS ist oft einfacher für den öffentlichen Zugang (z. B. das Klonen), während SSH eine sicherere und bequemere Methode für den authentifizierten Zugang (z. B. das Übertragen von Änderungen) bietet, sobald die SSH-Schlüssel eingerichtet sind.
Sie können nun die Testverzeichnisse entfernen:
rm -rf git-https-test git-ssh-test
Das Verständnis, wann HTTPS und wann SSH verwendet werden sollte, ist wichtig für die Verwaltung Ihrer Git-Workflows und die Sicherstellung des sicheren Zugangs zu Ihren Repositories.