Ich habe mich ein bisschen damit abgefunden, dass Github immer nach meinem Benutzernamen und Passwort gefragt hat, wenn ich ein Repository klone. Ich möchte diesen Schritt umgehen, da er in meinem Workflow störend ist.
Ich habe versucht, mithilfe dieses Handbuchs einen SSH-Schlüssel einzurichten (was ich erfolgreich getan habe). https://help.github.com/articles/generating-ssh-keys und ich waren erfolgreich.
Mein Problem ist, dass ich beim Klonen eines Repositorys (mit SSH) immer noch nach meinem Github-Passwort und meiner Passphrase gefragt werde. Nach meinem Verständnis musste ich das nach dem Einrichten dieses SSH-Schlüssels nicht mehr tun.
Ich bin mir ein wenig unsicher, was ich fragen soll, also werde ich nur mein Ziel angeben.
Ich möchte in der Lage sein, Repositorys zu klonen, ohne ständig meine Github-Informationen eingeben zu müssen .
Was fehlt mir mit meinem SSH-Schlüssel? Wenn jemand eine Anleitung oder Ressourcen bereitstellen kann, würde ich es begrüßen, weil ich mich bei der SSH-Authentifizierung in GitHub immer etwas verloren gefühlt habe.
Meines Wissens ist dies ein Befehl, der testet, ob die Dinge richtig funktionieren. Hier sind die Ausgaben von meiner Konsole:
~ $ ssh -T [email protected]
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.
Sollte dies bei der Eingabe meines Passworts zuerst fehlschlagen? Wenn ich dann meine Passphrase eingebe, geht sie vorbei.
pageant
, was Teil von istputty
. In all diesen Fällen ist das Ziel dasselbe: Sie geben die Passphrase nur einmal ein, nachdem Sie Ihren PC gestartet haben. Die Key Manager-Agenten geben sie bei späteren Verwendungen an ssh weiter, bis Sie neu starten.Antworten:
Wenn Sie mit
HTTPs
URLs arbeiten, werden Sie immer nach Ihrem Benutzernamen / Passwort gefragt.Wenn Sie
SSH
beim Klonen / Einstellen von Fernbedienungen die richtige Verwendung verwenden . Stellen Sie dann sicher, dass Sie einen SSH-Agenten haben, der sich Ihr Passwort merkt. Auf diese Weise geben Sie Ihre Passphrase nur einmal pro Terminalsitzung ein.Wenn es immer noch zu nervig ist, setzen Sie einfach einen SSH-Schlüssel ohne Passphrase.
quelle
git remote -v
. So wechseln Sie von https zu ssh:git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
Identität ohne Schlüsselbund hinzufügen
Es kann vorkommen, dass Sie die Passphrase nicht im Schlüsselbund speichern möchten, aber nicht immer wieder die Passphrase eingeben müssen.
Sie können das so machen:
Dadurch werden Sie nach der Passphrase gefragt, geben sie ein und es wird nicht erneut gefragt, bis Sie neu starten.
Identität mit Schlüsselbund hinzufügen
Wie @dennis in den Kommentaren ausführt, können Sie die
-K
Option (-k
für Ubuntu) verwenden , um die Passphrase durch Neustarts durch Speichern in Ihrem Schlüsselbund beizubehalten, wenn Sie die Identität wie folgt hinzufügen:Dies wird Sie erneut nach der Passphrase fragen, diese eingeben und dieses Mal wird es nie wieder nach dieser Identität fragen.
quelle
-K
Option verwenden, um die Passphrase in Ihrem Schlüsselbund zu speichern, wenn Sie sie hinzufügen, z. B.ssh-add -K ~/.ssh/id_rsa
-k
für mich ... (Linux Mint / Ubuntu 14.04 Basis) aber ja! endlich sortiert ...ssh-add
wird automatisch~/.ssh/id_rsa
(unter anderem) hinzugefügt . Und es gibt keinen Grund, die Ausgabe an zu senden/dev/null
. viel besser, den Bericht darüber zu sehen, was er getan hat.Unter Mac OS X können Sie Ihren privaten Schlüssel mit dem folgenden Befehl zum Schlüsselbund hinzufügen:
Wenn Ihr privater Schlüssel unter ~ / .ssh gespeichert ist und den Namen id_rsa trägt:
Sie werden dann aufgefordert, Ihr Passwort einzugeben, das in Ihrem Schlüsselbund gespeichert wird.
Bearbeiten - Neustart behandeln
Um Ihr Passwort auch nach einem Neustart nicht eingeben zu müssen, fügen Sie Folgendes zu Ihrer SSH-Konfigurationsdatei hinzu (normalerweise unter ~ / .ssh / config).
quelle
~/.ssh
Ich habe alle Antworten hier ausprobiert und keine dieser Antworten hat funktioniert ! Mein Passwort würde zwischen Sitzungen / Neustarts meines Mac nicht bestehen bleiben.
Beim Lesen dieses OpenRadar und dieser Twitter-Diskussion habe ich herausgefunden, dass Apple das Verhalten von ssh-agent in macOS 10.12 Sierra absichtlich geändert hat, um die vorherigen SSH-Schlüssel nicht mehr automatisch zu laden. Um das gleiche Verhalten wie El Cap beizubehalten, habe ich Folgendes getan:
ssh-add -K ~/.ssh/id_rsa
Hinweis: Ändern Sie den Pfad dahin, wo sich Ihr Schlüssel id_rsa befindet.
ssh-add -A
Erstellen Sie die folgende
~/.ssh/config
Datei (oder bearbeiten Sie sie, falls vorhanden) :Und jetzt wird mein Passwort zwischen den Neustarts meines Mac gespeichert!
quelle
ssh-add -A
Ist mir nach einem OSX-Upgrade passiert, danke (ich denke, es wird nicht benötigt, wenn Sie nur einen Schlüssel haben~/.ssh/id_rsa
)Sie können die Passphrase für den Schlüssel entfernen
oder du kannst rennen
Sie erhalten eine Eingabeaufforderung für die Schlüsseldatei. Standardmäßig
~/.ssh/id_rsa
drücken Sie die EingabetasteSie werden aufgefordert, die aktuelle Passphrase einzugeben.
Dann wird eine Eingabeaufforderung für eine neue Passphrase angezeigt. Drücken Sie die Eingabetaste
quelle
-K
,-k
,-A
nicht für mich arbeiten).Führen Sie einfach den folgenden Befehl aus:
Sie werden nie wieder aufgefordert, das Passwort einzugeben.
quelle
ssh-add
dem Authentifizierungsagenten nur private Schlüsselidentitäten-K
hinzugefügt werden , und die Option dies einfach so macht: "Beim Hinzufügen von Identitäten wird jede Passphrase auch im Schlüsselbund des Benutzers gespeichert."Stellen Sie sicher, dass Sie ssh auch für Ihr Repository verwenden
mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin [email protected]:eMahtab/jenkins-cje-2017.git (fetch) origin [email protected]:eMahtab/jenkins-cje-2017.git (push)
Verwenden Sie kein https. Wenn Ihre Fernbedienung https verwendet, werden Sie weiterhin nach dem Kennwort gefragt, auch wenn Sie den öffentlichen Schlüssel zu Github und den privaten Schlüssel zu ssh-agent hinzugefügt haben. Unten werden Sie immer nach dem Passwort gefragt
mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch) origin https://github.com/eMahtab/jenkins-cje-2017.git (push)
quelle
git pull
und geholfengit push
. Ich habe meine URL vom HTTPS-Typ auf den SSH-Typ umgestellt, und es hat funktioniert - ich habegit pull
aufgehört, nach dem Passwort zu fragen.git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
Ich musste ausführen:
Hinweis : Sie müssen dies nach jedem Neustart erneut tun. Wenn Sie dies vermeiden möchten, geben Sie es in Ihre " .bashrc " -Datei ein, die sich
C:\Users\<<USERNAME>>\.bashrc
unter Windows befindet. Es ist wahrscheinlich versteckt, stellen Sie also sicher, dass Sie versteckte Dateien sehen können.Lösung hier gefunden .
quelle
Wenn Sie Windows verwenden, hat dies bei mir funktioniert:
Im zweiten Befehl wird nach einer Passphrase gefragt, und das war's.
quelle
Versuchen
ssh-agent
Sie es wie dort erklärt: https://help.github.com/articles/working-with-ssh-key-passphrasesquelle
Sie müssen einen SSH-Agenten verwenden.
TL; DR : Terminal öffnen und versuchen
vor dem Drücken. Geben Sie Ihre Passphrase ein, wenn Sie dazu aufgefordert werden.
quelle
Ich habe kürzlich ein Upgrade auf macOS Mojave durchgeführt und einige Tools über Homebrew installiert, die anscheinend Apples Version
ssh-add
gegen die andere ausgetauscht haben. Meine Standardversionssh-add
nicht hat die-K
Wahl. Dies führte zu folgendem Fehler:# ssh-add: illegal option -- K
Sie können sehen, welche Version von
ssh-add
Ihnen haben, indem Sie ausführenwhich ssh-add
.(Meins wurde in gespeichert
/usr/local/bin/ssh-add
)Um dies zu beheben, musste ich den Schlüssel auf Apples Version zeigen :
Git / GitHub hat danach perfekt funktioniert. Weitere Informationen finden Sie unter: Fehler: ssh-add: unzulässige Option - K.
quelle
Unter Mac OSX Sierra habe ich festgestellt, dass die im Github-Problem für Open Radar vorgeschlagenen Korrekturen mein Problem behoben haben. Scheint, als hätte Sierra das Standardverhalten geändert (ich hatte dieses Problem nach dem Upgrade).
Dieses fand ich besonders nützlich: https://github.com/lionheart/openradar-mirror/issues/15361#issuecomment-249059061
Dies führte dazu, dass meine Identität dem Agenten hinzugefügt wurde, nachdem ich ausgeführt wurde
Zusammenfassend in OSX.12:
sollte führen zu:
BEARBEITEN: Beim nächsten Neustart (auch bekannt als der Agent gestoppt und neu gestartet) ist mir aufgefallen, dass dies nicht mehr funktioniert. Die vollständigere Lösung ist die oben erwähnte von @ChrisJF: Erstellen einer
~/.ssh/config
Datei. Hier ist meine Ausgabe:Sie können beliebig viele
IdentityFile
Einträge hinzufügen , dies ist jedoch die Standardeinstellung. Dies ist die "Trend" -Antwort auf dem Openradar-Link oben, ebenfalls ATM.quelle
Arbeitete in LinuxMint / Ubuntu
Führen Sie die folgenden Schritte aus
Schritt 1:
Speichern Sie die folgenden Zeilen in der Datei
Schritt 2:
Öffnen Sie das Terminal und fügen Sie das Keyset zum ssh-add hinzu
Geben Sie die Passphrase ein.
quelle
Ich hatte bereits eine Passphrase festgelegt, aber aus irgendeinem Grund wurde sie nicht mehr erkannt. Also habe ich die Identitätsdatei einfach wieder mit meinem Schlüsselbund hinzugefügt
ssh-add -K
und sie hat aufgehört, nach meinem Passwort zu fragen.quelle
Das hat bei mir funktioniert:
quelle
Das Problem scheint zu sein, weil Sie von HTTPS und nicht von SSH klonen. Ich habe alle anderen Lösungen hier ausprobiert, hatte aber immer noch Probleme. Das hat es für mich getan.
Verwenden Sie das
osxkeychain helper
Gleiche so:Finden Sie heraus, ob Sie es installiert haben.
git credential-osxkeychain
Wenn es nicht installiert ist, werden Sie aufgefordert, es als Teil der Xcode-Befehlszeilentools herunterzuladen.
Wenn es installiert ist, weisen Sie Git an, es
osxkeychain helper
mit der globalencredential.helper
Konfiguration zu verwenden:git config --global credential.helper osxkeychain
Wenn Sie das nächste Mal eine HTTPS-URL klonen, werden Sie aufgefordert, den Benutzernamen / das Kennwort einzugeben und den Zugriff auf den OSX-Schlüsselbund zu gewähren. Nachdem Sie dies das erste Mal getan haben, sollte es in Ihrem Schlüsselbund gespeichert sein und Sie müssen es nicht erneut eingeben.
quelle
Diese Antwort richtet sich in erster Linie an Windows-Benutzer und ist auch gleichermaßen relevant, wenn Sie Probleme beim Klonen mit tfs, github oder gitlab unter einem anderen Betriebssystem haben.
Der Standardauthentifizierungsmodus bei Verwendung von SSH ist der private Schlüssel. Wenn dies aus irgendeinem Grund fehlschlägt, greift der ssh-agent auf die auf Benutzername und Kennwort basierende Authentifizierung zurück.
Es gibt mehrere Gründe, warum die standardmäßige schlüsselbasierte Authentifizierung möglicherweise fehlgeschlagen ist. Im Folgenden sind die häufigsten Fälle aufgeführt:
a) Der ssh-Agent kann die private Standardschlüsseldatei id_rsa nicht finden , und es wird kein anderer Schlüsselpfad explizit angegeben.
b) Der auf dem Server gespeicherte öffentliche Schlüssel ist falsch.
c) Der Pfad, den Sie klonen möchten, ist falsch.
In jedem Fall führen Sie zur Behebung des Problems zunächst den Befehl git clone mit ausführlicher Protokollierung mit dem folgenden Befehl aus:
Sie können jeden Schritt im Protokoll durchgehen, um eine Vorstellung davon zu erhalten, wo das Problem liegen könnte.
Fehlerbehebung bei (a)
Wenn Sie einen anderen Schlüssel für die Authentifizierung angeben möchten, verwenden Sie den folgenden Befehl:
Fehlerbehebung bei (b)
Fehlerbehebung bei (c)
quelle
Wenn Sie die SSH-URL für Git verwenden, geben Sie bei Aufforderung zur Eingabe des Kennworts für SSH den Benutzernamen als " Git " und das Kennwort als Anmeldekennwort Ihres Systems ein
quelle
HTTPS
auf hatSSH
mein Problem behoben. Danke @MichaelR, Ihr Artikel war wirklich hilfreich, obwohl ich nichts davon gelesen habe: DIch möchte eine Antwort für diejenigen hinzufügen, die möglicherweise noch das Kennwort eingeben müssen, da sie IdentitiesOnly als yes festgelegt haben. Dies kann dazu führen, dass mehrere Schlüssel und die Identitätsdatei Schlüssel für Git oder Server sind.
Nachdem ich den Schlüssel generiert und auf den Server kopiert habe:
Ich fand es hat nicht funktioniert.
Dann ging ich, um die
~/.ssh/config
Datei zu überprüfen , ich sah dies unten:Dann füge ich das oben hinzu:
Ich kann mich einfach durch Eingabe anmelden
ssh 12gpu
.Dann können Sie mehrere SSH-Schlüssel mit Ihren Lieblingsnamen hinzufügen und müssen nur die Einstellungen wie die obigen vier Zeilen zur Konfigurationsdatei hinzufügen.
Host ist der Name, den Sie eingeben möchten, wenn Sie später eine Verbindung zum Server herstellen. Der Hostname ist die IP- Adresse oder Domain des Servers wie github.com. Benutzer ist der Benutzername, den Sie auf dem Server anmelden, z. B. der Benutzername oder Git für Github oder Gitlab. und die IdentityFile ist die Datei, in der Sie den von Ihnen generierten Schlüssel speichern.
quelle
Im Allgemeinen sind hier die Schritte aufgeführt, mit denen Sie mit ssh ohne Kennwort eine Remoteverbindung zu Ihrem Server herstellen können:
Erstellen Sie ein Paar privater und öffentlicher rsa-Schlüssel
Kopieren Sie Ihren öffentlichen Schlüssel und melden Sie sich bei Ihrem Remote-Server an
Fügen Sie Ihren öffentlichen Schlüssel zu .ssh / authorized_keys hinzu
Wenn Sie mehrere SSH-Schlüssel in Ihrem Computer haben, können Sie Ihren Schlüssel mit SSH-Add hinzufügen
$ ssh-add /path/to/private/key
Versuchen Sie dann ssh auf Ihrem Server
$ ssh username@your_ip_address
Quelle: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html
quelle
Verwenden Sie
ssh
die von Github bereitgestellte Remote-URL nichthttps
.quelle
Wenn Sie Windows und GIT ohne Tools von Drittanbietern verwenden und Ihr Schlüssel nicht durch ein Kennwort / eine Passphrase gesichert ist, verwenden Sie Folgendes:
Fügen Sie Ihren Git-Server-Host wie folgt zur "config" -Datei hinzu:
Speichern Sie die Datei und klonen Sie das Repository wie folgt:
Git-Klon ssh: //myhostname.com/git-server/repos/picalc.git
Sie können zusätzliche Konfigurationsparameter für den Hosteintrag "config" verwenden. Diese befinden sich in Ihrem lokalen Git-Installationsordner, z. B. " C: \ Programme \ Git \ etc \ ssh \ ssh_config ". Auszug:
quelle
Das gleiche Problem für mich und die Lösung war:
In diesem Github-Dokument können Sie die URL der Remote-Datei von https in ssh konvertieren. Verwenden Sie git remote -v, um zu überprüfen, ob die URL von remote ssh oder https lautet. So wechseln Sie von https zu ssh: git remote set-url origin [email protected]: USERNAME / REPOSITORY.git @jeeYem
quelle
Mobaxterme hatte eine UI-Oberfläche dafür
setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]
quelle
SSH-Schlüssel - Immer noch nach Passwort und Passphrase fragen
Unter Windows und unter Verwendung von PuTTY als SSH-Schlüsselgenerator erwies sich diese schnelle und einfache Lösung als die einzige funktionierende Lösung für mich, die eine einfache Windows-Befehlszeile verwendet:
pageant.exe
undplink.exe
.ppk
Erweiterung gespeichert"full\path\to\your\pageant.exe" "full\path\to\your\key.ppk"
( muss angegeben werden). Dadurch wird derpageant
Dienst ausgeführt und Ihr Schlüssel registriert (nach Eingabe des Passworts).GIT_SSH=full\path\to\plink.exe
( darf nicht in Anführungszeichen gesetzt werden). Dadurch werden git ssh-Kommunikations-bezogene Befehle umgeleitetplink
, die denpageant
Dienst zur Authentifizierung verwenden, ohne erneut nach dem Kennwort zu fragen.Erledigt!
Hinweis 1: Diese Dokumentation warnt vor einigen Besonderheiten beim Arbeiten mit den
GIT_SHH
Einstellungen für Umgebungsvariablen. Ich kannpush
,pull
,fetch
mit einer beliebigen Anzahl von zusätzlichen Parametern auf den Befehl und alles funktioniert gut für mich (ohne dass ein zusätzliches Skript zu schreiben , wie darin vorgeschlagen).Hinweis 2: Der Pfad zur
PuTTY
Installation befindet sich normalerweise inPATH
und kann daher weggelassen werden. Wie auch immer, ich bevorzuge es, die vollständigen Pfade anzugeben.Automatisierung:
Die folgende Batchdatei kann ausgeführt werden, bevor git über die Befehlszeile verwendet wird. Es zeigt die Verwendung der Einstellungen:
Wie auch immer, ich habe die
GIT_SSH
Variable eingestelltSystemPropertiesAdvanced.exe > Environment variables
und diepageant.exe
alsRun
Registrierungsschlüssel (*) hinzugefügt .(*) Schritte zum Hinzufügen eines
Run
Registrierungsschlüssels>regedit.exe
HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run
Edit > New > String Value
Edit > Modify...
(oder Doppelklick)pageant.exe
und einpublic key
, z. B."C:\Program Files\PuTTY\pageant.exe" "C:\Users\username\.ssh\id_ed00000.ppk"
(Beachten Sie, dass%ProgramFiles%
Variablen usw. hier nur funktionieren, wenn SieExpandable string value
anstelle vonString value
in Schritt 3 auswählen .)quelle
Wie unter Klonen erklärt, fragt ein Git-Repo von VSTS über SSH nach einem Passwort! Unerwartet
Das Problem kann daran liegen, dass die Authentifizierung mit öffentlichem Schlüssel fehlschlägt. Anschließend wird nach dem Kennwort meines Unternehmenskontos gefragt.
Dies würde nicht passieren, wenn die Authentifizierung mit öffentlichem Schlüssel erfolgreich wäre.
Sie können also id_rsa.pub überprüfen und sogar eine neue erstellen.
quelle
Ich denke, die Antwort von @sudo bangbang sollte akzeptiert werden.
Wenn Sie den SSH-Schlüssel generieren, drücken Sie einfach die Eingabetaste, um die Eingabe Ihres Passworts zu überspringen, wenn Sie aufgefordert werden, das Kennwort zu konfigurieren.
Das bedeutet, dass Sie bei Verwendung des SSH-Schlüssels KEIN Passwort benötigen. Denken Sie also daran, dass Sie beim Generieren des SSH-Schlüssels KEIN Passwort eingeben müssen. Drücken Sie einfach die Eingabetaste, um es zu überspringen.
quelle