Ich konnte sftp
gestern eine RHEL 5.4 Box (RedHat) machen und heute kann ich nicht.
Die Nachricht ist "Received message too long 778199411"
, und nach einigen Nachforschungen lag es daran, dass meine RHEL-Box .bashrc
eine Leitung hat echo "running .bashrc"
- oder überhaupt etwas wiedergibt, denke ich.
Warum wirkt sich das Ausdrucken einer Zeile dann aus sftp
? Es kam mir ein bisschen wie ein Designproblem vor, als ich .bashrc
in anderen Situationen wie Anmelden oder Drucken einer Zeile in einem Werk arbeitete. ssh
Es ist schwierig, herauszufinden , wann ein sftp
Fehler aus einem so seltsamen Grund auftritt.
Die Frage ist also, warum das Ausdrucken einer Zeile einen solchen Fehler verursacht und was ist, wenn wir noch etwas ausdrucken möchten .bashrc
? (hauptsächlich, um zu sehen, wann diese Datei bezogen / ausgeführt wird).
Antworten:
Dies ist ein seit langem bestehendes Problem. Ich fand es vor zehn Jahren, als ich zum ersten Mal kommerzielles SSH bei der Arbeit und Open-SSH zu Hause mischen musste. Ich bin heute erneut darauf gestoßen und habe diesen Beitrag gefunden.
Wenn ich nach "sftp / scp schlägt fehl, aber ssh ist in Ordnung" gesucht hätte, wäre ich früher an die Lösung erinnert worden!
Einfach gesagt, .bashrc und .bash_profile etc müssen still sein oder sie stören das sftp / scp-Verbindungsprotokoll.
Siehe die open-SSH FAQ:
2.9 - sftp / scp schlägt bei der Verbindung fehl, aber ssh ist OK.
quelle
ssh yourhost /usr/bin/true
die Ausgabe Ihres SSH prüfen . In meinem Fall habe ich festgestellt, dass ein Befehl in ~ / .bashrc anfing, Fehler zu erzeugen.Zumindest für SFTP kann dies mit Hilfe des
internal-sftp
Subsystems behoben werden , da dieses nicht.bashrc
oder nicht liest/etc/motd
.Ändern Sie einfach die
/etc/ssh/sshd_config
Datei und das SFTP-Subsystem:Und der Fehler ist weg.
quelle
internal-sftp
ist, IMO, eine bessere Möglichkeit, SFTP-Unterstützung anzubieten. Sie können diesen verwandten Beitrag sehen: serverfault.com/questions/660160/…Jede Antwort, die ich irgendwo darauf gesehen habe, besagt, dass es sich um zu viel gedruckte Ausgabe über
/etc/motd
oder.bashrc
usw. handelt. Nicht immer wahr. Wenn Sie ein Konto mit Nein haben.bashrc
,/etc/motd
ist das leer, und die Standardeinstellung.bashrc
ist minimal, ohne gedruckte Ausgabe. SIE KÖNNEN NOCH das Problem haben. Wenn Sie ein Benutzerkonto mit einer Shell von haben/sbin/nologin
oder/bin/false
dieser Fehler weiterhin auftritt.Wieso würdest du das machen??? Wenn Sie jemandem im Root-Gefängnis
sftp
Zugriff gewähren möchten, geschieht dies ohne Secure-Shell-Zugriff.Umgehen: Erlauben Sie
ssh
und setzen Sie sie auch in ein Wurzelgefängnis. Dies ist ein Problem, das angegangen werden mussssh
, es wird viel zu lange auf sich warten lassen.quelle
Setzen Sie einfach folgendes in ~ / .bashrc auf den Benutzernamen der ID auf der entfernten Maschine, wenn diese ID bash verwendet
Das beendet einfach vorzeitig die ~ / .bashrc-Datei, anstatt die gesamte Datei auszulesen. Dadurch wird die .bashrc-Datei stillgelegt, wenn Sie sich nicht bei dieser ID anmelden und nur scp oder sftp mit diesem Benutzernamen als Remote-ID ausführen. Um @Peter Scott in einer anderen Antwort zu zitieren: "Einfach gesagt, .bashrc und .bash_profile usw. müssen still sein oder sie stören das sftp / scp-Verbindungsprotokoll."
Wenn diese entfernte ID zsh verwendet, setzen Sie alternativ Folgendes oben auf ~ / .zshrc
Wenn die Shell auf Ihrem Remotecomputer ~ / .bashrc nicht verwendet, nehmen Sie die obigen Änderungen in der Datei ~ / .bashrc_profile oder ~ / .profile oder ähnlichem vor, damit sie zu Ihrer Shell auf dieser Remotebox passen
quelle
Es kann noch einen Grund geben. Auf RHEL 6 mit openssh-5.3p1-122.el6.x86_64 haben wir festgestellt, dass es sich falsch verhält, wenn LOCALE auf "C" bleibt. Bei Änderung mit:
Dann verhält sich sftp richtig. In der vorherigen Version von openssh-5.3p1-118 haben wir ein solches Verhalten nicht erlebt, daher handelt es sich wahrscheinlich um einen kleineren Fehler in diesem Build.
quelle
In meinem Fall musste ich Ubuntus Willkommensnachricht deaktivieren, damit es funktioniert.
quelle