Ich bin hoffnungslos verwirrt. Ich versuche zu verhindern, dass Tortoisegit mich bei jedem Ziehen / Drücken zur Eingabe eines Kennworts auffordert (es macht mir nichts aus, wenn ich mich bei Windows anmelde, aber danach möchte ich, dass es automatisch erfolgt).
Mein Git-Server läuft auf meinem Synology NAS über das offizielle Git Server-Paket. Ich klone über ssh: // user @ server / foo / bar .
Folgendes habe ich getan / versucht:
- habe mir über Puttygen ein öffentliches und privates Schlüsselpaar geschaffen.
- hat Putty Authentication Agent (Festzug) gestartet und meinen privaten Schlüssel hinzugefügt.
- hat eine Datei mit den autorisierten Schlüsseln auf dem Server unter /root/.ssh/ erstellt . Ich habe es nur mit dem Base64-codierten Teil der öffentlichen Schlüsseldatei und auch mit der
---- BEGIN SSH2 PUBLIC KEY ----
Kopf- und Fußzeile versucht . - Stellen Sie tortoisegit so ein, dass TortoiseGitPLink.exe als SSH-Client verwendet wird (die Standardeinstellung, glaube ich). Ich habe auch pageant.exe ausprobiert , aber das führt zu einem Fehler: "Dieser Schlüssel konnte nicht geladen werden (Datei kann nicht geöffnet werden)"
Ich werde weiterhin zur Eingabe eines Kennworts aufgefordert, und der Putty Agent scheint in keiner Weise in den Prozess involviert zu sein (auch nach der Authentifizierung keine Schlüssel). Jeder Rat wäre sehr dankbar.
root
Benutzer nicht für Git verwenden sollen. Hatten Sie auch eine Kitt-Sitzung gespeichert, scheint TortoiseGitPlink.exe es zu benötigen (und gespeicherte Kitt-Sitzung benötigt einen Schlüssel in Festzug)Antworten:
Stellen Sie sicher, dass Sie die Anweisungen auf den SSH-Tasten befolgt haben
Für Windows Git UND TortoiseGit sind zwei in Windows festgelegte Umgebungsvariablen erforderlich.
GIT_SSH = C: \ Programme \ TortoiseGIT \ bin \ TortoiseGitPlink.exe
SVN_SSH = C: \ Programme \ TortoiseGIT \ bin \ TortoiseGitPlink.exe
(ersetzen Sie durch Ihre Pfade, wenn anders)
Sie müssen auch sicherstellen, dass PLINK_PROTOCOL nicht überschrieben wird. Andernfalls ist PLINK_PROTOCOL = ssh
Überprüfen Sie nach diesen Änderungen den Zugriff wie folgt:
Öffnen Sie ein Dos Command-Fenster und geben Sie den Befehl plink git @ your git depot server name ein
Wenn eine Liste der Git-Repositorys zurückgegeben wird, kommunizieren Sie mit Git.
Wenn ein Fehler zurückgegeben wird, müssen Sie möglicherweise Ihre Windows-Dateien .ssh / config und / oder etc / hosts bearbeiten
quelle
GIT_SSH
&SVN_SSH
habe es für mich getan!Sie möchten nicht den öffentlichen Schlüssel verwenden, der mit der Schaltfläche "Öffentlichen Schlüssel speichern" gespeichert wird. In der PuTTY Key Generator-Benutzeroberfläche sollten Sie den Text im oberen Feld in Ihre
authorized_keys
Datei kopieren :Es sollte genau kopiert werden und eine einzelne Zeile in Ihrer
authorized_keys
Datei sein.Verwenden Sie auch,
ssh://root@server/foo/bar
um Ihr Repo zu klonen? Wenn nicht, müssen Sie sicherstellen, dass Sie Ihren öffentlichen Schlüssel zurauthorized_keys
Datei für den richtigen Benutzer hinzufügen .quelle
Hinzufügen eines von Putty generierten SSH-Schlüssels im OpenSSH-Format zu Ihrem Linux-Konto und Testen, ob Sie sich bei Github oder einem anderen Linux-Server anmelden können
Kopieren Sie den Ordner
id_rsa
undid_rsa.pub
in den~/.ssh
Ordner. Ändern Sie die Berechtigungen derid_rsa
Datei zu400/600
verwendenchmod 600 ~/.ssh/id_rsa
https://stackoverflow.com/a/9270753/4752883Überprüfen Sie, ob
ssh-agent
miteval $(ssh-agent -s) and start/restart
ssh-agent` ausgeführt wird ( https://stackoverflow.com/a/17848593/4752883 )Fügen Sie einen
ssh
privaten Schlüssel hinzu zussh-agent
:ssh-add ~/id_rsa
( https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#adding-your-ssh-key -to-the-ssh-agent )Stellen Sie sicher, dass der öffentliche Schlüssel an Ihr Konto angehängt ist ( https://help.github.com/articles/error-permission-denied-publickey/ ) :
ssh-add -l -E md5
. Die Ausgabe sollte so etwas wie sein2048 MD5:de:5d… /home/username/.ssh/id_rsa (RSA)
Stellen Sie sicher, dass Sie sich
ssh
bei einemgithub
anderen Server anmelden können ( https://help.github.com/articles/testing-your-ssh-connection/ ) :ssh -T [email protected]
. Die Ausgabe sollte lautenHi username! You've successfully authenticated, but GitHub does not provide shell access.
Wenn ein Fehler wie angezeigt wird
key_load_public: invalid format
, bedeutet dies, dass Sie dasPuttygen
Format des öffentlichen Schlüssels verwenden. Gehen Sie folgendermaßen vor, um zurOpenSSH
Version des öffentlichen Schlüssels zu wechseln : ( https://stackoverflow.com/a/44391850/4752883 )quelle