VS Code gibt mir einen ssh_askpass-Fehler, wenn ich versuche, die Änderungen mit dem integrierten Git in mein Github-Repository zu übertragen
Lesezeit: 7 Minuten
Ich habe dieses Problem, ich habe ein Github-Repository erstellt, um ein Projekt zu sichern. Ich habe über meine Linux-Befehlszeile normalen SSH-Zugriff auf mein Repo und kann problemlos pushen, pullen, committen, synchronisieren und all das Zeug. Aber wenn ich versuche, das VS-Code-Github-Integrationstool zu verwenden, um meine Änderungen zu pushen, erhalte ich diesen Fehler:
Git: ssh_askpass: exec(usr/lib/ssh/ssh_askpass): Keine solche Datei oder Verzeichnis.
Ich habe im erwähnten Verzeichnis nach dieser Datei gesucht, aber alles, was ich gesehen habe, war eine Datei namens gassh_askpass.
Ich verwende derzeit Manjaro und VS Code 1.28.2
Was fehlte in meiner Antwort?
– VonC
28. Februar um 20:08 Uhr
Ihre Antwort hat mir in diesem Moment geholfen, daher bin ich dankbar und schätze sie, aber die Frage besagt, dass das Problem unter Linux Manjaro gefunden wurde. Ich dachte, es wäre für die eingehenden Benutzer nützlicher, wenn ich eine Antwort auswählen würde, die den Fragenspezifikationen entspricht.
– Gabe
28. Februar um 20:37 Uhr
Guter Punkt. Ich habe meine Antwort entsprechend bearbeitet.
– VonC
28. Februar um 22:31 Uhr
Anton Perera
Ich musste 2 Dinge tun, um das Problem zu lösen.
Installieren Sie ssh_askpass
sudo apt install ssh-askpass
Verwenden Sie diesen Befehl, um bitbucket.org hinzuzufügen (in meinem Fall war es Bitbucket)
In meinem Fall wird es durch die Aktualisierung von Mac OS verursacht, wodurch Git die Passphrase meines SSH-Schlüssels verliert.
Nach ssh-add ~/.ssh/id_rsaund vscode NEU INSTALLIEREN, ist dieses Problem behoben.
Sie müssen Ihr Passwort immer noch jedes Mal eingeben, wenn Sie sich mit dem Server verbinden. Wenn Sie das nicht möchten, erstellen Sie eine ssh-key-Datei.
Speziell für Manjaro, wie in erwähnt dieser Faden:
Wenn Sie Virt-Manager verwenden, um sich über SSH mit einem entfernten Hypervisor zu verbinden, müssen Sie openssh-askpass sowie x11-ssh-askpass installieren
Wenn Sie Dienste wie SSH-Schlüssel verwenden, stellen Sie sicher, dass Sie den SSH-Schlüsselagenten nicht deaktivieren. Es war ein dummer Fehler
Wenn der SSH-Agent deaktiviert ist, kann er die Passphrase tatsächlich nicht registrieren.
Die Operation verwendet Manjaro, warum ist diese Antwort für MacOS und noch seltsamer, warum wird diese Antwort akzeptiert !!!
– Jeton Thaçi
7. November 2019 um 14:46 Uhr
@JetonThaçi Guter Punkt. Ich muss (um 6 Uhr morgens, als ich das schrieb) Mac OS Mojave (de.wikipedia.org/wiki/MacOS_Mojave) und Linux Manjaro (en.wikipedia.org/wiki/Manjaro)! Aber wie das OP sagte … “es hat wie ein Zauber funktioniert”. So hier sind wir.
– VonC
7. November 2019 um 14:55 Uhr
@VonC Unter Ubuntu 19.10 installiere ich “ssh-askpass” mit dem apt-Befehl. Ich habe einen Teil des Problems gelöst. Aber es ist eine lästige Lösung. Weil es nicht nur 1 Mal nach meinem SSH-Passwort gefragt hat, sondern mich 1000 Mal gefragt hat, weshalb Benutzer-SSH-Schlüssel nicht verwendet werden. Es hätte nur einmal fragen sollen.
– Pranav
15. Dezember 2019 um 3:00 Uhr
@Prabeshbhattarai Es sollte nicht nach einem Passwort gefragt werden. Es könnte nach a fragen Passphrase; nur wenn Ihr privater SSH-Schlüssel mit einer Passphrase erstellt wurde. Führen Sie in diesem Fall einen SSH-Agenten aus und fügen Sie die Passphrase hinzu: help.github.com/en/github/authenticating-to-github/…. Auf diese Weise fragt VSCode es nicht jedes Mal, wenn Sie in ein Repository pushen oder daraus ziehen.
– VonC
15. Dezember 2019 um 16:26 Uhr
@VonC nicht schlecht. +1 von mir.
– Pranav
16. Dezember 2019 um 12:48 Uhr
Jonashackt
Ich hatte dieses Problem nach dem Upgrade auf MacOS Big Sur. Einige der Optionen aus der Antwort von VonC haben bei mir funktioniert, jedoch in einer etwas anderen Kombination. Das waren meine Schritte, um VS Code endlich wieder mit GitHub zum Laufen zu bringen:
1. Installieren Sie ssh-askpass (neu) und starten Sie den ssh-pass-Dienst
Oder wenn Sie es bereits installiert hatten (wie ich), dann installieren Sie es erneut:
brew reinstall theseal/ssh-askpass/ssh-askpass
Endlich starten ssh-askpass Dienst zum Laden der Umgebungsvariable SSH_ASKPASS über:
brew services start ssh-askpass
2. Bereiten Sie sich darauf vor, einen symbolischen Link zu ssh-askpass zu erstellen (auch bekannt als xQuartz installieren)
Ich wollte einfach einen symbolischen Link erstellen /usr/local/bin/ssh-askpass zu /usr/X11R6/bin/ssh-askpass. Aber mir wurde klar, dass in MacOS Big Sur die Datei /usr/X11R6 selbst ist ein Link zu /private/var/select/X11 und das drinnen /private/var/select das X11ist einfach weg. Beim Versuch, darauf zuzugreifen, erhielt ich a cd: no such file or directory: /private/var/select/X11.
Dies kann behoben werden, indem die neueste Version von XQuartz installiert wird https://www.xquartz.org. Laden Sie die herunter XQuartz-2.x.x.dmg, öffnen Sie es und folgen Sie den Installationsschritten. Danach der Ordner /private/var/select/X11 ist wieder dabei 🙂
3. Erstellen Sie einen symbolischen Link zu ssh-askpass
4. Erlauben Sie VS Code den Zugriff auf Systemereignisse in den MacOS-Systemeinstellungen
Die Verwendung der GitHub-Integration in VSCode funktioniert nur, da wir ihr den Zugriff auf System Events.app erlauben, die selbst für die Interaktion benötigt wird ssh-askpass. Dies kann im konfiguriert werden MacOS-Systemeinstellungen / Sicherheit Fenster im Inneren Privatsphäre Tab. Möglicherweise müssen Sie nach unten scrollen Automation Punkt und aktivieren Sie das Kontrollkästchen für Code (leider habe ich hier nur ein deutsches MacOS):
5. Starten Sie VSCode neu oder installieren Sie es sogar neu
Für mich hat nur ein Neustart von VS Code das Problem nicht behoben. Nachdem Sie alle oben genannten Schritte durchgeführt haben, tritt ein weiterer Fehler auf ssh-askpass hat es in mein VS-Code-Protokoll geschafft: /usr/local/bin/ssh-askpass:2141:2142: execution error: „System Events“ error connection invalid (-2700)
Da ich auch Homebrew zum Installieren von VSCode verwendet habe, habe ich es einfach ausgeführt
brew reinstall visual-studio-code
um es neu zu installieren. Endlich hat die GitHub-Integration bei mir wieder funktioniert.
6. (Optional, nur wenn Ihr SSH-Schlüssel eine Passphrase hat) Fügen Sie die Passphrase Ihres SSH-Schlüssels zum MacOS-Schlüsselbund hinzu
Wenn Sie einen SSH-Schlüssel erstellt haben, der durch eine Passphrase gesichert ist, werden Sie von VS Code möglicherweise jedes Mal nach dieser Passphrase gefragt, wenn Sie die Git-Integration verwenden (was bei mir der Fall war). Wenn Sie die Passphrase nicht jedes Mal eingeben möchten, gab es in den Kommentaren seiner Antwort auch einen Hinweis von VonC: Sie müssen die Passphrase des Schlüssels zum MacOS-Schlüsselbund hinzufügen (was ist in den GitHub-Dokumenten beschrieben).
Hier ist eine kurze Zusammenfassung, was Sie tun müssen:
6.1 Erweitern Sie Ihre ~/.ssh/config
Fügen Sie die 3 Zeilen zu Ihrer hinzu ~/.ssh/config Verwenden Sie den Namen Ihres SSH-Schlüssels:
6.2 Fügen Sie Ihre Passphrase zum MacOS-Schlüsselbund hinzu
Führen Sie die aus ssh-add Befehl mit dem -K Parameter:
ssh-add -K ~/.ssh/your_key_file_name_here
Jetzt sollte Ihr VS-Code aufhören, nach der Passphrase Ihres Schlüssels zu fragen!
Syed Asad
Für Manjaro-Benutzer können Sie installieren openssh-askpass:
pacman -S openssh-askpass
Dadurch wird ein Plasma-ähnlicher Passphrase-Dialog für SSH in VS Code geöffnet, wenn Sie versuchen, auf GitHub zu pullen und zu pushen. Dies funktioniert für Manjaro.
Wenn Sie Arch KDE verwenden und ksshaskpass verwenden, können Sie einen Symlink zu dem Ort erstellen, an dem VSCode danach fragt.
funktioniert bei mir auf Manjaro. Ich kann x11-ssh-askpass oder openssh-askpass nicht finden.
– Jan
2. Juni um 22:07 Uhr
14292000cookie-checkVS Code gibt mir einen ssh_askpass-Fehler, wenn ich versuche, die Änderungen mit dem integrierten Git in mein Github-Repository zu übertragenyes
Was fehlte in meiner Antwort?
– VonC
28. Februar um 20:08 Uhr
Ihre Antwort hat mir in diesem Moment geholfen, daher bin ich dankbar und schätze sie, aber die Frage besagt, dass das Problem unter Linux Manjaro gefunden wurde. Ich dachte, es wäre für die eingehenden Benutzer nützlicher, wenn ich eine Antwort auswählen würde, die den Fragenspezifikationen entspricht.
– Gabe
28. Februar um 20:37 Uhr
Guter Punkt. Ich habe meine Antwort entsprechend bearbeitet.
– VonC
28. Februar um 22:31 Uhr