OpenSSH via Powershell - vi wird blau

768
p0lar_bear

Ich arbeite unter Windows 10 und verwende Win32-OpenSSH über Powershell, um eine Verbindung zu einem CentOS 7-Computer in meinem Netzwerk herzustellen.

Wenn ich vieine neue Datei starte oder gelegentlich andere Dateien öffne, wird der gesamte neue Text in meinem Fenster blau angezeigt.

enter image description here

Dies wird fortgesetzt, bis ich das Powershell-Fenster schließe.

Gibt es eine Idee, warum dies geschieht und ob es eine Problemumgehung gibt, bei der kein anderer sshClient oder eine andere Umgebung verwendet wird? Ich verstehe, dass ich einfach einen "richtigen" Terminal-Emulator wie PuTTYm verwenden kann, aber meine Frage ist, ob es ein bekanntes Update für dieses bestimmte Szenario gibt oder nicht.

1
Kommt es vor, wenn Sie einen anderen Client (z. B. PuTTY) verwenden, um eine Verbindung herzustellen? Kamil Maciorowski vor 5 Jahren 0
Verwenden Sie vim, neovim, nvi oder ex-vi? grawity vor 5 Jahren 0
@ KamilMaciorowski Ich habe keinen anderen Terminal-Emulator ausprobiert. Dies geschieht jedoch nicht, wenn ich die Maschine direkt verwende, dh indem sie sich über den Hyper-V-Manager mit ihr verbindet. p0lar_bear vor 5 Jahren 0
@grawity Ich habe keine Ahnung von meinem Kopf. Da der Puffer zeigt, dass ich `vi` ausführte, und dies ist eine kaum modifizierte CentOS 7-Minimalinstallation, nehme ich an, dass dies nur Vanille vi ist. Und ich erinnere mich, wie ich versucht habe, `vim` auszuführen und einen" Befehl nicht gefunden "zu bekommen. p0lar_bear vor 5 Jahren 0

1 Antwort auf die Frage

0
Kaveh Vahedipour

Powershell ist kein Terminal-Emulator und wird daher von dem entsprechenden Fernsteuerungs- und Sichtsteuerungs-Charakter begeistert sein.

Solange Sie planen, ssh in einem Skript zu verwenden, interessieren Sie sich nicht für fischartige Farben, sie werden in der Ausgabe nicht angezeigt. Was möglich ist, ist, dass Sie mit einigen verstümmelten Zeichen enden. Mögen

Wenn dies jedoch eine interaktive Shell ist, sollten Sie einen Terminalemulator wie putty in Betracht ziehen.

Ich bin mir mehr als bewusst, dass die Windows-Konsole einen VT100-TTY nicht emuliert. Microsofts OpenSSH-Client verfügt jedoch über einen VT100-Interpreter, der mit den meisten TTY-Szenarien umgehen kann, mit der Einschränkung, dass einige interaktive * nix-Anwendungen einige Probleme haben. https://github.com/PowerShell/Win32-OpenSSH/wiki/TTY-PTY-support-in-Windows-OpenSSH Die Frage war, ob es irgendeine Art von Problemumgehung für dieses Problem gab, dh ob andere WinOpenSSH-Benutzer dies gefunden haben. oder wenn es mit anderen TTY-Emulatoren passiert ist. p0lar_bear vor 5 Jahren 0
Das Problem ist nicht der ssh-Client, dh openssh. Das Problem ist, dass "cmd" oder "Powershell" die Kontrollzeichen empfängt, die die Farben usw. im Client-Terminal wie "\ [\ e] 0;" beeinflussen, und anstatt die Schrift grün zu färben, wird das Problem nicht behoben. Mit anderen Worten, wenn Sie den openssh-Client in einem eigenen UI-Fenster verwenden, ist alles in Ordnung. Übrigens, derselbe Müll wird angezeigt, wenn Sie `plink.exe` von PuTTY in einer Cmd-Shell verwenden. Ich würde es wirklich sehr schätzen, wenn Sie die Antwort akzeptieren würden, wenn Ihnen dies helfen würde, da sich irgendein Schwätzer entschieden hat, die richtige Antwort abzustimmen. Kaveh Vahedipour vor 5 Jahren 0
Es ist kein Geheimnis, dass Windows und * Nix historisch nicht gut zusammenarbeiten. Microsoft ist sich dessen bewusst und sie haben eine Gabel aus OpenSSH, die speziell für die Verwendung von `cmd` /` powershell`, die ich verwende, erstellt wurde. Dies ist in der Tat ein Problem bei diesem spezifischen `ssh'-Client, da der integrierte VT100-Interpreter wahrscheinlich einige Steuercodes nicht auf eine Weise verarbeitet, die zu der erwarteten Ausgabe führt. Wie Sie in meinem Screenshot sehen können, bekomme ich keine "Müll" -Ausgabe, als würde ich ein Skript oder eine Binärdatei ausführen, die für ein ANSI-Terminal vorgesehen ist, ohne weitere Verarbeitung. p0lar_bear vor 5 Jahren 0
Ich würde mich wirklich freuen, wenn Sie meine Antwort akzeptieren würden. Kaveh Vahedipour vor 5 Jahren 0
Nein. Außerdem sagte ich "Jackass", ich danke Ihnen, da diese Antwort so aussieht, als würde Windows zum Scheitern von Windows verwendet. Ihre Haltung gegenüber der Downvote (dh Sie nennen mich einen Esel und behaupten, dass Ihre Antwort DIE richtige Antwort ist), verstärkt diese Wahrnehmung. Obwohl ich überlegte, werde ich zugeben, dass ich nicht klar war. Ich werde die Gegenstimme umkehren, weil mir klar wird, dass ich meine Frage umformulieren muss, da ich wissen wollte, warum dies geschieht, und um zu wissen, ob es einen Workaround gibt, der nicht "nur PuTTY lol verwenden" hat, und es scheint, als ob meine Absicht nicht war. t vermittelt. p0lar_bear vor 5 Jahren 1
... Und ich kann die Abstimmung nicht rückgängig machen, wenn Sie die Antwort nicht bearbeiten. Zahlen : / p0lar_bear vor 5 Jahren 0
Bei allem Respekt sehe ich wirklich nicht, wo die Antwort für das Schlagen von Fenstern ist. Ich bin 47 und jenseits dieser Jahre. Die erste Zeile besagt lediglich, dass Powershell kein Terminalemulator ist. Es soll niemals einer sein. Der Rest ist "Überlegen ...". Jedenfalls viele thx. Kaveh Vahedipour vor 5 Jahren 0
Danke, diese Antwort liest sich viel besser. Ich werde in Betracht ziehen, dies als Antwort zu akzeptieren, wenn bald niemand anderes kommt und eine Antwort mit einer Problemumgehung / Lösung veröffentlicht. Entschuldigung für die gekreuzten Signale. p0lar_bear vor 5 Jahren 1