Warum SSH?
Weil wenn ich mir ein repo per https
auf meinen Rechner clone muss ich bei jedem push meine Zugangsdaten erneut eingeben. Wenn ich einen ssh
Zugang verwende, ist die Verbindung ende-zu-ende-verschlüsselt. Ich generiere also einen privaten und einen öffentlichen Schlüssel auf meinem Rechner, hinterlege den Öffentlichen bei Github und clone meine Projekte anschließend per
git@github.com:[UserName]/[meinprojekt].git
statt per
https://github.com/[UserName]/[meinprojekt].git
Los gehts..
´ssh´ Schlüssel generieren
cd ~/.ssh
ssh-keygen
Nun werdet ihr nach einem Namen für die Schlüssel-Dateien gefragt. Ich bennene meine Dateien nach den Diensten die dahinter stehen. Also zum Beispiel github oder bitbucket.
Dann wird man nach dem Passwort gefragt. Ich vergebe keins – zum einen aus Faulheit, zum anderen aus dem Grund dass Derjenige der damit blödsinn anstellen will, erst mal an meinen Rechner rann muss, und das ist schwer genug. Also tippe ich zwei mal [enter].
Der private Schlüssel liegt jetzt in ~/.ssh/github
und der öffentliche in ~/.ssh/github.pub
.
Öffentlichen Schlüssel bei GitHub hinterlegen
Nun kopiere ich mir meinen öffentlichen Schlüssel in den Zwischenspeicher:
pbcopy < ~/.ssh/github.pub
Und anschließend füge ich ihn in meinen Benutzereinstellungen unter »ssh« als neuen Schlüssel hinzu. Da ich von verschiedenen Rechnern aus arbeite vergebe ich hier noch einen Titel wie Rechner im Büro.
Private Schlüssel permanent hinzufügen
Nun muss man noch eine config-Datei anlegen, in der man erklärt welche Schlüssel-Dateien zu meiner Identität gehören.
echo 'IdentityFile ~/.ssh/github' >> ~/.ssh/config
Fertig. Ab jetzt kann man seine eigenen GitHub-Projekte per ssh
clonen, pullen, pushen etc.:
git@github.com:[UserName]/[meinprojekt].git