Wie bringe ich Git dazu, standardmäßig ssh und nicht https für neue Repositories zu verwenden?

Lesezeit: 6 Minuten

Wie bringe ich Git dazu standardmasig ssh und nicht https
Nikhil

Wenn ich heutzutage ein neues Repository auf GitHub auf der Setup-Seite erstelle, bekomme ich:

git remote add origin https://github.com/nikhilbhardwaj/abc.git
git push -u origin master

Und immer wenn ich ein Commit pushen muss, muss ich meinen GitHub-Benutzernamen und mein Passwort eingeben.

Das kann ich manuell ändern

[email protected]:nikhilbhardwaj/abc.git

in dem .git/config. Ich finde das ziemlich irritierend – Gibt es eine Möglichkeit, Git so zu konfigurieren, dass es standardmäßig SSH verwendet?

  • Ich denke, die Antwort von @ MoOx entspricht wahrscheinlich am ehesten dem, was Sie suchen. Die insteadOf trick gibt es seit mindestens 2012. Siehe auch Konvertieren git: URLs zu http: URLs.

    – jww

    16. November 2017 um 21:02 Uhr

1646317087 386 Wie bringe ich Git dazu standardmasig ssh und nicht https
David Kain

Richten Sie den Ursprungszweig eines Repositorys als SSH ein

Die Einrichtungsseite des GitHub-Repositorys ist nur eine vorgeschlagene Liste von Befehlen (und GitHub schlägt jetzt die Verwendung des HTTPS-Protokolls vor). Wenn Sie keinen Administratorzugriff auf die Website von GitHub haben, kenne ich keine Möglichkeit, die vorgeschlagenen Befehle zu ändern.

Wenn Sie lieber das SSH-Protokoll verwenden möchten, fügen Sie einfach einen Remote-Zweig wie folgt hinzu (dh verwenden Sie diesen Befehl an Ort und Stelle des von GitHub vorgeschlagenen Befehls). Informationen zum Ändern eines vorhandenen Zweigs finden Sie im nächsten Abschnitt.

$ git remote add origin [email protected]:nikhilbhardwaj/abc.git

Ändern Sie ein bereits vorhandenes Repository

Wie Sie bereits wissen, können Sie die Remote-URL in Ihrem ändern, um ein bereits vorhandenes Repository auf die Verwendung von SSH anstelle von HTTPS umzustellen .git/config Datei.

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    -url = https://github.com/nikhilbhardwaj/abc.git
    +url = [email protected]:nikhilbhardwaj/abc.git

Eine Verknüpfung ist die Verwendung der set-url Befehl:

$ git remote set-url origin [email protected]:nikhilbhardwaj/abc.git

Weitere Informationen zum SSH-HTTPS-Switch

  • Danke, ich wusste nicht, dass sie Smart https zum Standard machen.

    – Nikhil

    26. Juni 2012 um 9:29 Uhr

  • Das mag für Windows-Benutzer gut sein, aber unter Linux war es ein ziemlicher Rückschritt: ssh hat immer funktioniert, und das neue Passwort-Caching für Smart HTTPS funktioniert nur unter Windows. Da ist eine Notiz dran “Wo ist die Mac-Version?” aber nicht ein Einzel Wort für Linux-Benutzer.

    – MestreLion

    14. September 2012 um 13:13 Uhr


  • Ich sollte hinzufügen, dass diese Methode den Mac-Client von github überhaupt nicht stört. Ändern Sie es und Sie können problemlos sowohl die Befehlszeilen- als auch die GUI-Version (Github-Client) von Git verwenden.

    – Kemal Dağ

    11. Oktober 2013 um 8:39 Uhr

  • Aufs Neue set-url Hilf mir! Vielen Dank !

    – guozqzzu

    22. November 2017 um 4:59 Uhr

  • Jetzt, da GitHub den Passwortzugriff missbilligt (siehe hier), scheint es, als müsste diese Antwort irgendwo Teil ihrer offiziellen Dokumentation sein. Ist es schon da?

    – Matt Moehr

    29. Januar 2021 um 20:21 Uhr

Wie bringe ich Git dazu standardmasig ssh und nicht https
Trevor Austin

  • GitHub

    git config --global url.ssh://[email protected]/.insteadOf https://github.com/
    
  • Bit Bucket

    git config --global url.ssh://[email protected]/.insteadOf https://bitbucket.org/
    

Das weist Git an, beim Herstellen einer Verbindung zu GitHub/BitBucket immer SSH anstelle von HTTPS zu verwenden, sodass Sie sich standardmäßig per Zertifikat authentifizieren, anstatt zur Eingabe eines Passworts aufgefordert zu werden.

  • Falls das jemand nachschauen möchte die Dokumentationsuchen nach url.<base>.insteadOf.

    Benutzer456814

    18. Juni 2014 um 15:39 Uhr

  • Seien Sie vorsichtig, dies scheint einige Dinge zu beschädigen – ich habe festgestellt, dass einige Funktionen von Homebrew nicht mehr funktionieren, nachdem ich diese Änderung vorgenommen habe (nämlich das Installieren von nicht standardmäßigen Versionen / Zweigen).

    – OT

    23. Oktober 2015 um 20:45 Uhr

  • Für gitlab: git config –global url.ssh://[email protected]/.insteadOf gitlab.com

    – Moox

    8. April 2016 um 13:23 Uhr

  • ich Überlegen dass es git config –global url.ssh://[email protected]:.insteadOf sein sollte github.com, weil github [email protected]:/.git mag. (BEARBEITEN git config --global [email protected]:.insteadOf https://github.com/ funktioniert sicher in git 2.7.4.)

    – Glen Keane

    22. Juni 2016 um 11:51 Uhr


  • Da ein Kommentar hier Homebrew-Probleme erwähnte, könnte es eine gute Idee sein, sie zu entfernen --global und tun dies auf PR-Repo-Basis.

    – Pylinux

    27. Juni 2017 um 11:02 Uhr


1646317089 594 Wie bringe ich Git dazu standardmasig ssh und nicht https
MoOx

Die Antwort von Trevor ist richtig.

Aber hier ist, was Sie direkt in Ihre hinzufügen können .gitconfig:

# Enforce SSH
[url "ssh://[email protected]/"]
  insteadOf = https://github.com/
[url "ssh://[email protected]/"]
  insteadOf = https://gitlab.com/
[url "ssh://[email protected]/"]
  insteadOf = https://bitbucket.org/

  • Viel einfacher +1

    – PiersyP

    28. März 2017 um 16:12 Uhr

  • +1 für diesen Trick. Es wird auch von den Kernel-Leuten empfohlen. Siehe auch git ziehen auf der Mailingliste für Kernel-Neulinge.

    – jww

    16. November 2017 um 20:52 Uhr

  • viel sauberere Lösung – und großartig für gehen Projekte, bei denen “go get” standardmäßig https ist und man URLs stattdessen individuell auf ssh setzen möchte, z. B. für private Repos usw.

    – colm.anseo

    27. Mai 2018 um 1:23 Uhr


  • Für Gitlab: [url "ssh://[email protected]/"] insteadOf = https://gitlab.com/ Es gibt auch pushInsteadOf wenn Sie die Push-URL beeinflussen, aber nicht abrufen möchten. Kann benutzen git remote -v um effektive URLs zu inspizieren, die git verwenden wird.

    – Beni Cherniavsky-Paskin

    10. Juni 2018 um 8:46 Uhr


  • Dies funktioniert zumindest bei bestehenden Repositories nicht.

    – Andreas Köster

    4. September 2019 um 17:11 Uhr

1646317089 687 Wie bringe ich Git dazu standardmasig ssh und nicht https
rofrol

Sie müssen in ssh klonen, nicht in https.

Dazu müssen Sie Ihre ssh-Schlüssel festlegen. Ich habe dieses kleine Skript vorbereitet, das dies automatisiert:

#!/usr/bin/env bash
email="$1"
hostname="$2"
hostalias="$hostname"
keypath="$HOME/.ssh/${hostname}_rsa"
ssh-keygen -t rsa -C $email -f $keypath
if [ $? -eq 0 ]; then
cat >> ~/.ssh/config <<EOF
Host $hostalias
        Hostname $hostname *.$hostname
        User git
    IdentitiesOnly yes
        IdentityFile $keypath
EOF
fi

und führe es gerne aus

bash script.sh [email protected] github.com

Ändern Sie Ihre Remote-URL

git remote set-url origin [email protected]:user/foo.git

Inhalt hinzufügen von ~/.ssh/github.com_rsa.pub zu Ihren SSH-Schlüsseln auf github.com

Überprüfen Sie Ihre Verbindung

ssh -T [email protected]

1646317090 727 Wie bringe ich Git dazu standardmasig ssh und nicht https
Mike Lyons

Möglicherweise haben Sie das Repository versehentlich in https anstelle von ssh geklont. Ich habe diesen Fehler viele Male auf Github gemacht. Stellen Sie sicher, dass Sie beim Klonen zuerst den ssh-Link kopieren, anstatt den https-Link.

  • Sie müssen eine neue mit dem ssh-Link klonen

    – CodenameNull

    3. Dezember 2018 um 18:14 Uhr

  • Sie können auch den Repo-Link von HTTP auf SSH ändern, siehe die anderen Antworten.

    – Mike Lyons

    30. September 2019 um 17:11 Uhr

1646317091 39 Wie bringe ich Git dazu standardmasig ssh und nicht https
bhargav joshi

SSH-Datei

~/.ssh/config file
Host *
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    LogLevel QUIET
    ConnectTimeout=10
Host github.com
        User git
        AddKeystoAgent yes
        UseKeychain yes
        Identityfile ~/github_rsa

Reponame/.git/config bearbeiten

[remote "origin"]
        url = [email protected]:username/repo.git

  • Sie müssen eine neue mit dem ssh-Link klonen

    – CodenameNull

    3. Dezember 2018 um 18:14 Uhr

  • Sie können auch den Repo-Link von HTTP auf SSH ändern, siehe die anderen Antworten.

    – Mike Lyons

    30. September 2019 um 17:11 Uhr

1646317091 327 Wie bringe ich Git dazu standardmasig ssh und nicht https
Devin Rhode

FYI – Ich verwende dies, weil github ssh nicht mehr zulässt:

[url "[email protected]:"]
    insteadOf = https://github.com/
[url "[email protected]:"]
    insteadOf = https://gist.github.com/

924240cookie-checkWie bringe ich Git dazu, standardmäßig ssh und nicht https für neue Repositories zu verwenden?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy