Git-Push mit SSH-Schlüssel

Abdul Jabbar 15 Februar 2024
  1. Generieren Sie ein SSH-Schlüsselpaar
  2. Geben Sie einen SSH-Schlüssel an
Git-Push mit SSH-Schlüssel

SSH steht für Secure Shell. Es ist ein Schlüssel, der uns ein Zugangszertifikat für das SSH-Netzwerkprotokoll bereitstellt.

Es bietet Zugriff auf einen Remote-Server zwischen Engines in einem nicht gesicherten offenen Netzwerk. Es wird bei der Übertragung von Daten, Dateien und der Netzwerkverwaltung verwendet und ermöglicht den Zugriff auf entfernte Server vom Ursprung.

Wenn ein Entwickler Dateien sicher zwischen einer lokalen Git-Installation und einem entfernten Git-Repository verschieben, ziehen oder duplizieren möchte, muss er als Erstes ein SSH-Schlüsselpaar auf diesem Server erstellen. Durch diesen Schlüssel wird der Entwickler sowohl von der Git-Installation des zertifizierten Entwicklers mit dem Remote-Server identifiziert.

Sehen wir uns an, wie wir ein SSH-Schlüsselpaar generieren und dann die Arbeit im geänderten Zustand mit diesem SSH-Schlüssel in das Remote-Repository verschieben können. Im Folgenden finden Sie die Details zum Generieren des SSH-Schlüsselpaars:

Generieren Sie ein SSH-Schlüsselpaar

Um ein SSH-Schlüsselpaar zu erstellen, gehen wir zu Git Bash; Nach dem Öffnen verwenden wir den folgenden Befehl mit unserer E-Mail-ID:

ssh-keygen -t rsa -b 4096 -C "email@test.com"

Jetzt müssen wir den Speicherort und die Passphrase der Datei wie gewünscht eingeben.

git ssh-keygen

Wie im obigen Abschnitt können Sie sehen, dass der Schlüssel basierend auf der bereitgestellten Detaileingabe mit der oben angegebenen RSA-Methode generiert wird. Sobald der Schlüssel generiert ist, müssen wir diesen Schlüssel verwenden und die erforderliche Arbeit an das Remote-Repository übertragen.

Geben Sie einen SSH-Schlüssel an

Manchmal benötigen Entwickler einen weiteren SSH-Schlüssel, um ihre Arbeit in ein bestimmtes Git-Repo zu pushen. Da ~/.ssh/id_rsa ein Standardserver-SSH-Bereitstellungsschlüssel ist, der es dem Entwickler nicht erlaubt, ein lokales Repo im Arbeitsbereich des Entwicklers auf den Git-Server zu übertragen, der möglicherweise einen eindeutigen Host hat.

Für solche Szenarien, in denen der Benutzername und der Hostname identisch sind, sollte der Entwickler einen anderen SSH-Schlüssel und eine andere Berechtigung in seiner ~/.ssh/config festlegen. Nehmen wir an, die Konfiguration scheint wie unten definiert zu sein.

Host git-as-anaa
  HostName git.com
  User git
  IdentityFile ~/home/key/xsshfile.thuc
  IdentitiesOnly yes

Host git-as-tomi
  HostName git.com
  User git
  IdentityFile /home/key/sshfile.ten
  IdentitiesOnly yes

Wenn die Konfiguration so ist, verwendet der Entwickler nur github-as-anaa und github-as-tomi und ersetzt den ursprünglichen Hostnamen (git.anaa.com) in seiner URL.

git remote add anaa git@git-as-anaa:your-repo.git
git remote add tomi git@git-as-tomi:your-repo.git

Die Option IdentitiesOnly yes wird verwendet, um die Verwendung von Standardidentitäten zu unterbinden. Wenn wir andererseits auch Identitätsdateien haben, die mit den Standardnamen identisch sind, werden sie sicherlich zuerst ausprobiert, da die Option IdentityFile nicht mit anderen Konfigurationsoptionen identisch ist und an die Liste der zu versuchenden Identitäten angehängt wird.

Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn