![CentOS 7: Verbindung über WinSCP nicht möglich, wenn Bash ausgeführt wird](https://rvso.com/image/1558689/CentOS%207%3A%20Verbindung%20%C3%BCber%20WinSCP%20nicht%20m%C3%B6glich%2C%20wenn%20Bash%20ausgef%C3%BChrt%20wird.png)
Ich verwende CentOS Server 7 auf einer VM (ESXi) mit Root-Rechten. Ich habe ein Bash-Skript (in meinem Verzeichnis /etc/profile.d/), das sofort nach der Anmeldung ausgeführt wird. Bevor ich meine .sh-Datei im Verzeichnis erstellt habe, gab es kein Problem, über WinSCP eine Verbindung zu meiner VM herzustellen. Nachdem ich die Datei erstellt und das System neu gestartet habe, kann ich keine Verbindung mehr herstellen. OpenSSH ist installiert. Scheint, als würde die Bash-Ausführung die Verbindung blockieren. Wenn ich meine .sh-Datei anschließend über die Konsole lösche, wird die Verbindung wieder hergestellt. Ist das ein CentOS-Problem? Dieses Problem hatte ich unter Ubuntu Server nie.
Ich erhalte den folgenden Fehler:
SFTP-Protokoll kann nicht initialisiert werden. Läuft auf dem Host ein SFTP-Server?
Irgendwelche Ideen? Vielen Dank im Voraus!
Antwort1
Sie zeigen uns Ihr Skript nicht, daher ist dies offensichtlich etwas spekulativ; aber höchstwahrscheinlich sollte Ihr Skript nicht enthalten sein, profile.d
da es irgendeine Art von Benutzerinteraktion erfordert.
Das Profil sollte ausschließlich für Dinge reserviert sein, die auch in nicht interaktiven Sitzungen ausgeführt werden müssen.
Der richtige Platz für interaktive Funktionen ist wahrscheinlich überhaupt nicht in Ihren Anmeldeskripten, aber so etwas wie dies beispielsweise in Ihrem $HOME/.bash_profile
kann zumindest verhindern, dass bei nicht interaktiven Sitzungen Schäden entstehen.
case $- in *i*) invoke your script here;; esac
Wenn Sie .bash_profile
bereits ein Formular haben, enthält dieses möglicherweise bereits eine case $-
Anweisung, die Sie ändern können, anstatt eine zweite hinzuzufügen.