GNU/Linux >> Znalost Linux >  >> Linux

Chyba SFTP Přijatá zpráva je příliš dlouhá

Nakonfigurujte svůj server tak, aby používal interní sftp server přidáním následující direktivy do /etc/ssh/sshd_config :

Subsystem sftp internal-sftp

Tímto způsobem nebude používat uživatelský shell ke spuštění programu serveru sftp.


„Přijatá zpráva je příliš dlouhá“ znamená, že váš klient SFTP obdržel špatná data ze serveru SFTP. Typickým důvodem je, že spouštěcí skripty shellu na serveru (.bashrc, .profile, .cshrc atd.) vytvářejí nějaký výstup a váš SFTP klient se snaží tento výstup analyzovat jako zprávu SFTP. Můžete to zkontrolovat spuštěním příkazu:

ssh [email protected] 'echo hello'

Pokud to vytvoří jiný výstup než „ahoj“, pak by tento výstup pravděpodobně bránil správnému fungování SFTP nebo SCP.

Stejně jako v odpovědi salvy se tomu můžete vyhnout nastavením serveru SSH tak, aby pro relace SFTP používal interní sftp. Tím se vyhnete spouštění vašeho prostředí pro relace SFTP. To nepomůže s SCP ani s jinými programy jako git nebo rsync, které běží přes ssh.

Další způsoby, jak to vyřešit, je projít si spouštěcí příkazy shellu, zjistit, co vytváří výstup, a zabránit tomu, aby se to stalo během neinteraktivních relací SSH. Jeden tip je otestovat TTY před spuštěním příkazů, které produkují výstup:

if [ -t 1 ]; then
    # standard output is a TTY
    ...
fi

Linux
  1. Ubuntu – seznam argumentů je příliš dlouhý?

  2. Příkazový řádek se přepíše, když jsou příkazy příliš dlouhé

  3. Chyba vstupu/výstupu gcsfuse

  1. chyba vstupu/výstupu ubuntu

  2. Jak interpretovat a opravit chybu vstupu/výstupu v Linuxu?

  3. ps:celý příkaz je příliš dlouhý

  1. Řešení chyby Mysql:Příliš mnoho otevřených souborů

  2. Chyba OpenCA – příliš krátká symetrická délka klíče [Řešení]

  3. grep výstup z dlouhého na široký