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

Benutzeravatar von Anton Perera
Anton Perera

Ich musste 2 Dinge tun, um das Problem zu lösen.

  1. Installieren Sie ssh_askpass

     sudo apt install ssh-askpass
    
  2. Verwenden Sie diesen Befehl, um bitbucket.org hinzuzufügen (in meinem Fall war es Bitbucket)

     ssh-keyscan -t rsa bitbucket.org >> ~/.ssh/known_hosts
    

Benutzeravatar von VonC
VonC

Hängt auch von deinem Betriebssystem ab.

Zum Beispiel, Microsoft/vscode/issue 32097 veranschaulicht verschiedene Problemumgehungen für MacOS:

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.

Oder:

$ brew tap theseal/ssh-askpass
$ brew install ssh-askpass
$ sudo ln -s /usr/local/bin/ssh-askpass /usr/X11R6/bin/ssh-askpass

Oder:

  • Laden Sie die neueste Version von xQuartz herunter: https://www.xquartz.org
  • update und upgrade home-brew über ‘brew update && brew upgrade’
  • Verknüpfung: $ sudo ln -s /usr/local/bin/ssh-askpass /usr/X11R6/bin/ssh-askpass wie @stargriv oben beschrieben 🙂
  • Starten Sie VSCode, sollte jetzt funktionieren
  • 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

sudo pacman -S openssh-askpass x11-ssh-askpass

Die OP Prabesh Bhattarai Referenzen “ssh_askpass exec(/usr/libexec/openssh/ssh-askpass) no such file or directory‘ Fehler, wenn ich versuche, Git Repo mit VS Code einzufügen

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

Benutzeravatar von jonashackt
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

Wie in den Dokumenten angegeben::

brew install theseal/ssh-askpass/ssh-askpass

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 X11 ist 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

Jetzt können wir den symbolischen Link erstellen:

sudo ln -s /usr/local/bin/ssh-askpass /usr/X11R6/bin/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):

vscode-privacy-automation-system-events-setting

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:

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

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!

Benutzeravatar von Syed Asad
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.

sudo ln -s /usr/bin/ksshaskpass /usr/lib/ssh/ssh-askpass

  • Der Fehlerbericht ist hier: github.com/microsoft/vscode/issues/57488.

    – Ein Hai

    5. Mai um 11:29 Uhr

  • funktioniert bei mir auf Manjaro. Ich kann x11-ssh-askpass oder openssh-askpass nicht finden.

    – Jan

    2. Juni um 22:07 Uhr

  • Der Fehlerbericht ist hier: github.com/microsoft/vscode/issues/57488.

    – Ein Hai

    5. Mai um 11:29 Uhr

  • funktioniert bei mir auf Manjaro. Ich kann x11-ssh-askpass oder openssh-askpass nicht finden.

    – Jan

    2. Juni um 22:07 Uhr

1429200cookie-checkVS Code gibt mir einen ssh_askpass-Fehler, wenn ich versuche, die Änderungen mit dem integrierten Git in mein Github-Repository zu übertragen

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

Privacy policy