it-swarm.com.de

SSH-Schlüssel - Immer noch nach Passwort und Passphrase fragen

Ich habe es etwas ertragen, dass Github immer nach meinem Benutzernamen und Passwort gefragt hat, wenn ich ein Repository klone. Ich möchte diesen Schritt umgehen, da er mich in meinem Workflow stört.

Ich habe versucht, mithilfe dieser Anleitung einen SSH-Schlüssel einzurichten (was ich erfolgreich getan habe). https://help.github.com/articles/generating-ssh-keys und ich war erfolgreich.

Mein Problem ist, dass ich immer noch nach meinem Github-Passwort und meiner Passphrase gefragt werde, wenn ich ein Repository klone (mit SSH). Nachdem ich diesen SSH-Schlüssel eingerichtet hatte, musste ich das meines Erachtens nicht mehr tun.

Ich bin ein bisschen unsicher, was ich fragen soll, also werde ich nur mein Ziel angeben.

Ich möchte Repositorys klonen können, ohne ständig meine Github-Informationen eingeben zu müssen .

Was fehle ich mit meinem SSH-Schlüssel? Wenn irgendjemand Anleitungen oder Ressourcen zur Verfügung stellen kann, würde ich es begrüßen, da ich mich bei der SSH-Authentifizierung in GitHub immer etwas verloren gefühlt habe.

Soweit ich weiß, ist dies ein Befehl, der testet, ob die Dinge richtig funktionieren. Hier ist die Ausgabe 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.

Wenn ich mein Passwort eingebe, sollte das zuerst fehlschlagen? Wenn ich dann meine Passphrase eingebe, ist sie gültig.

401
HelloWorld

Wenn Sie mit HTTPs URLs arbeiten, werden Sie immer nach Ihrem Benutzernamen/Passwort gefragt.

Wenn Sie SSH beim Klonen/Einstellen von Fernbedienungen korrekt verwenden. Stellen Sie dann sicher, dass Sie einen SSH-Agenten haben, der sich Ihr Passwort merken kann. Auf diese Weise geben Sie Ihre Passphrase nur einmal pro Terminalsitzung ein.

Wenn es Ihnen immer noch zu ärgerlich ist, legen Sie einfach einen SSH-Schlüssel ohne Passphrase fest.

159
Simon Boudrias

Identität ohne Schlüsselbund hinzufügen

Es kann Zeiten geben, in denen Sie die Passphrase nicht im Schlüsselbund speichern möchten, die Passphrase jedoch nicht immer wieder eingeben müssen möchten.

Das können Sie so machen:

ssh-add ~/.ssh/id_rsa 

Dadurch werden Sie nach der Passphrase gefragt, geben Sie sie ein und werden erst nach einem Neustart erneut gefragt.

Identität mithilfe des Schlüsselbunds hinzufügen

Wie @dennis in den Kommentaren ausführt, können Sie die Option -K (-k für Ubuntu) verwenden, um die Passphrase durch Speichern in Ihrem Schlüsselbund für einen Neustart beizubehalten:

ssh-add -K ~/.ssh/id_rsa

Erneut werden Sie aufgefordert, die Passphrase einzugeben, und dieses Mal werden Sie nie wieder nach dieser Identität gefragt.

696
Komu

Unter Mac OS X können Sie Ihren privaten Schlüssel mit dem folgenden Befehl zum Schlüsselbund hinzufügen:

ssh-add -K /path/to/private_key

Wenn Ihr privater Schlüssel unter ~/.ssh gespeichert ist und den Namen id_rsa hat:

ssh-add -K ~/.ssh/id_rsa

Sie werden dann aufgefordert, Ihr Kennwort einzugeben, das in Ihrem Schlüsselbund gespeichert wird.

Edit - Handle restart

Damit Sie Ihr Passwort auch nach einem Neustart nicht eingeben müssen, fügen Sie Folgendes zu Ihrer ssh-Konfigurationsdatei hinzu (im Allgemeinen unter ~/.ssh/config).

Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa
226
Groot

Ich habe alle Antworten hier ausprobiert und keine dieser Antworten hat funktioniert ! Mein Passwort würde zwischen Sitzungen/Neustarts meines Mac nicht bestehen bleiben.

Was ich beim Lesen von dieses OpenRadar und diese Twitter-Diskussion herausgefunden habe, war Apple hat das Verhalten absichtlich geändert für ssh-agent in macOS 10.12 Sierra auf no länger automatisch die vorherigen SSH-Schlüssel laden. Um das gleiche Verhalten wie El Cap beizubehalten, habe ich Folgendes getan:

  1. ssh-add -K ~/.ssh/id_rsa
    Hinweis: Ändern Sie den Pfad dahin, wo sich Ihr id_rsa-Schlüssel befindet.
  2. ssh-add -A
  3. Erstellen (oder bearbeiten, falls vorhanden) Sie die folgende ~/.ssh/config -Datei:

    Host *
      UseKeychain yes
      AddKeysToAgent yes
      IdentityFile ~/.ssh/id_rsa
    

Und jetzt wird mein Passwort zwischen Neustarts meines Macs gespeichert!

175
ChrisJF

Sie können die Passphrase für den Schlüssel entfernen

$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

oder du kannst rennen

$ ssh-keygen -p

sie erhalten eine Eingabeaufforderung für die Schlüsseldatei. Standardmäßig ist es ~/.ssh/id_rsa, drücken Sie also die Eingabetaste

Sie werden aufgefordert, die aktuelle Passphrase einzugeben.

Dann wird nach einer neuen Passphrase gefragt. Drücken Sie die Eingabetaste

30
sudo bangbang

Führen Sie einfach den folgenden Befehl aus:

ssh-add -K

Sie werden nie wieder aufgefordert, das Passwort einzugeben.

27
user3640130

Stellen Sie sicher, dass Sie ssh auch für Ihr Repository verwenden

[email protected]:~/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)

enter image description here

Verwenden Sie kein https. Wenn Ihre Fernbedienung https verwendet, fragt sie weiterhin nach dem Kennwort, auch wenn Sie den öffentlichen Schlüssel zu Github und den privaten Schlüssel zu ssh-agent hinzugefügt haben. Unten wird immer nach einem Passwort gefragt

[email protected]:~/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)

21
Mahtab Alam

Wenn Sie Windows verwenden, hat dies bei mir funktioniert:

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa

Im zweiten Befehl wird nach einer Passphrase gefragt, und das war's.

14
Marina

Ich musste ausführen:

eval `ssh-agent -s`
ssh-add

Hinweis : Dies müssen Sie nach jedem Neustart erneut tun. Wenn Sie dies vermeiden möchten, geben Sie es in Ihre Datei ". Bashrc " ein, die sich unter Windows in C:\Users\<<USERNAME>>\.bashrc befindet. Es ist wahrscheinlich versteckt, stellen Sie also sicher, dass Sie versteckte Dateien sehen können.

Lösung gefunden hier .

12
Black

Diese Antwort hat für mich in Ubuntu funktioniert.

In diesem GitHub-Dokument können Sie die URL der Fernbedienung von https in ssh konvertieren. https://help.github.com/articles/changing-a-remote-s-url/
Um zu überprüfen, ob die URL der Fernbedienung ssh oder https lautet, verwenden Sie git remote -v.

So wechseln Sie von https zu ssh:
git remote set-url Origin [email protected]:USERNAME/REPOSITORY.git

8
Chris Kevin

Unter Mac OS X Sierra stellte ich fest, dass die im Github-Problem für Open Radar vorgeschlagenen Korrekturen mein Problem behoben haben. Sierra hat anscheinend das Standardverhalten geändert (dieses Problem trat nach dem Upgrade auf).

Dieses fand ich besonders nützlich: https://github.com/lionheart/openradar-mirror/issues/15361#issuecomment-249059061

ssh-add -A 

Dies führte dazu, dass meine Identität dem Agenten hinzugefügt wurde , nachdem ich ausgeführt hatte

ssh-add -K {/path/to/key}

Zusammenfassend in OSX.12:

ssh-add -K {/path/to/key}
ssh-add -A 

sollte ergeben:

Identity added: {/path/to/file} ({/path/to/file})

BEARBEITEN: Ich bemerkte, dass das nächste Mal, wenn ich einen vollständigen Neustart durchführte (der Agent wurde angehalten und neu gestartet), dies nicht mehr funktionierte. Die vollständigere Lösung ist die oben erwähnte @ChrisJF: Erstellen einer ~/.ssh/config -Datei. Hier ist meine Ausgabe:

$ cat ~/.ssh/config
Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

Sie können beliebig viele IdentityFile Einträge hinzufügen, dies ist jedoch die Standardeinstellung. Dies ist auch die "Trend" -Antwort auf dem Openradar-Link oben, ATM.

5
zedd45

Ich habe kürzlich ein Upgrade auf macOS Mojave durchgeführt und einige Tools über Homebrew installiert, bei denen anscheinend Apples Version von ssh-add gegen die andere ausgetauscht wurde. Meine Standardversion von ssh-add hatte nicht die Option -K. Dies führte zu folgendem Fehler:

# ssh-add: illegal option -- K

Sie können sehen, welche Version von ssh-add Sie haben, indem Sie which ssh-add ausführen.

(Meine wurde in /usr/local/bin/ssh-add gespeichert.)

Um dies zu beheben, musste ich den Schlüssel auf Apples Version verweisen :

/usr/bin/ssh-add -K ~/.ssh/id_rsa

Git/GitHub hat danach einwandfrei funktioniert. Weitere Informationen finden Sie unter: Fehler: ssh-add: unzulässige Option - K

3
aboutaaron

Ich hatte bereits eine Passphrase festgelegt, aber aus irgendeinem Grund wurde sie nicht mehr erkannt. Also habe ich die Identitätsdatei mit ssh-add -K erneut zu meinem Schlüsselbund hinzugefügt und nicht mehr nach meinem Passwort gefragt.

3

Arbeitete in LinuxMint/Ubuntu

Führen Sie die folgenden Schritte aus

Schritt 1:

Gehe zu Datei => /. Ssh/config

Speichern Sie die folgenden Zeilen in der Datei

Host bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile /home/Apple/myssh-privatekey
    AddKeysToAgent yes

Vergessen Sie nicht, diese Zeile hinzuzufügen AddKeysToAgent yes

Schritt 2:

Öffnen Sie das Terminal und fügen Sie den Keyset zum ssh-add hinzu

$ ssh-add -k /home/Apple/myssh-privatekey

geben Sie die Passphrase ein.

2
DhineshYes

Das Problem scheint darin zu liegen, dass Sie von HTTPS und nicht von SSH klonen. Ich habe alle anderen Lösungen ausprobiert, hatte aber immer noch Probleme. Das hat es für mich getan.

Verwenden Sie den osxkeychain helper wie folgt:

  1. Finden Sie heraus, ob Sie es installiert haben.

    git credential-osxkeychain

  2. Wenn es nicht installiert ist, werden Sie aufgefordert, es als Teil der Xcode-Befehlszeilentools herunterzuladen.

  3. Wenn es installiert ist, weisen Sie Git an, osxkeychain helper mit der globalen credential.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.

2
Bryan Perez

Wenn Sie die ssh-URL für git verwenden, geben Sie bei der Aufforderung zur Eingabe des Kennworts für ssh den Benutzernamen als " git " und das Kennwort als das Anmeldekennwort Ihres Systems ein

1

Im Allgemeinen führen Sie die folgenden Schritte aus, um mithilfe von ssh ohne Kennwort eine Remoteverbindung zu Ihrem Server herzustellen:

  • Erstellen Sie ein Paar aus einem privaten und einem öffentlichen RSA-Schlüssel

    $ ssh-keygen -t rsa -b 4096 -C "your comments"
    
  • 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

  • Dann versuche ssh auf deinem Server

    $ ssh [email protected]_ip_address

Quelle: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html

1
Anang Satria

Ich möchte eine Antwort für diejenigen hinzufügen, die das Kennwort möglicherweise noch eingeben müssen, weil sie IdentitiesOnly als Ja 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:

ssh-keygen
ssh-copy-id -i ~/.ssh/12gpu_server.pub [email protected]

Ich fand es hat nicht funktioniert.

Dann habe ich die ~/.ssh/config -Datei überprüft. Ich habe das unten gesehen:

Host *
IdentitiesOnly yes

Dann füge ich das oben hinzu:

Host 12gpu
HostName 192.168.20.160
User lerner
IdentityFile ~/.ssh/12gpu_server

Ich kann mich nur anmelden, indem ich ssh 12gpu eingebe.

Dann können Sie mehrere SSH-Schlüssel mit Ihren Lieblingsnamen hinzufügen, und Sie 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. das Hostname ist die IP oder Domain des Servers wie github.com; Benutzer ist der Benutzername, den Sie auf dem Server wie den Benutzernamen oder git für github oder gitlab anmelden. und IdentityFile ist die Datei, in der Sie den von Ihnen generierten Schlüssel speichern.

1
Lerner Zhang

Verwenden Sie die ssh Remote-URL von Github, nicht https.

0
Lost Koder

Ich denke, @ Sudo Bangbang Antwort sollte akzeptieren werden.

Wenn Sie einen SSH-Schlüssel generieren, drücken Sie einfach die Eingabetaste, um die Eingabe Ihres Kennworts zu überspringen, wenn Sie zur Eingabe des Konfigurationskennworts aufgefordert werden.

Das bedeutet, dass Sie KEIN Passwort BENÖTIGEN, wenn Sie den SSH-Schlüssel verwenden. Denken Sie also daran, dass Sie beim Generieren des SSH-Schlüssels KEIN Passwort eingeben. Drücken Sie einfach die Eingabetaste, um das Passwort zu überspringen.

0
andrava

Mobaxterme hatte eine Benutzeroberfläche dafür

setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]

0
Amir Heshmati

Das gleiche Problem für mich und die Lösung war:

Sehen Sie sich dieses Github-Dokument an, um die URL der Fernbedienung von https in ssh zu konvertieren. Verwenden Sie git remote -v, um zu überprüfen, ob die URL der Fernbedienung ssh oder https lautet. So wechseln Sie von https zu ssh: git remote set-url Herkunft [email protected]: USERNAME/REPOSITORY.git @jeeYem

0
Bruno Leite

Das hat bei mir funktioniert: git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"

0
daniel sp

Wenn Sie mit Windows und GIT ohne Tools von Drittanbietern sind und Ihr Schlüssel nicht gesichert durch ein Passwort/eine Passphrase ist, verwenden Sie Folgendes:

  1. Umgebungsvariable HOME muss auf Ihr Benutzerprofil eingestellt sein (z. B. C:\Users\Laptop)
  2. Gehen Sie zum Ordner C:\Users\Laptop\.ssh\und bearbeiten Sie die Datei "config" (oder erstellen Sie die Datei!) Beispiel: C:\Users\Laptop.ssh ​​\ config (Hinweis: Es gibt nein am ende!)
  3. Fügen Sie Ihren Git-Server-Host wie folgt zur "config" -Datei hinzu:

    #Example Host entry
    Host myhostname.com
        HostName myhostname.com
        User git
        IdentityFile c:/users/laptop/.ssh/id_rsa.pub
        PasswordAuthentication no
        Port 422
    
  4. Speichern Sie die Datei und klonen Sie das Repository wie folgt:

    git clone ssh: //myhostname.com/git-server/repos/picalc.git

Sie können zusätzliche Konfigurationsparameter für den Host-Eintrag der "config" -Datei verwenden. Diese finden Sie in Ihrem lokalen Git-Installationsordner, z. "C:\Programme\Git\etc\ssh\ssh_config". Auszug:

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
#   Port 22
#   Protocol 2
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h
0
Fabian Stern