Назад | Перейти на главную страницу

Измените флаги команд SCP по умолчанию в Linux

Я пытаюсь переместить файл с виртуальной машины (Ubuntu 18.04) в моей локальной системе на удаленный сервер, используя очень простой scp команда. Эта проблема присутствует только на одном конкретном сервере, другие работают нормально, поэтому это не универсальная вещь.

scp <file name> <user>@<complete_hostname>:~/

Но эта команда не продолжается после успешной аутентификации.

То же самое происходит, когда я использую FileZilla.

ИТ-команда посоветовала мне использовать WinSCP, который отлично работает.

журнал отладки scp

debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/username/.ssh/id_dsa
debug1: Trying private key: /home/username/.ssh/id_ecdsa
debug1: Next authentication method: password
'user'@'full hostname's password: 
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = C
debug1: Sending env LC_ALL = C
debug1: Sending command: scp -v -t ~/

После этого прогресса нет, FileZilla отключается через 20 секунд аналогичным образом. пока WinSCP работает нормально.

Что может вызвать scp зависать, поскольку я использую это в некоторых своих скриптах, эта проблема с одним конкретным сервером сделала мои скрипты непригодными для использования на них, это также относится к методам SFTP.

ИТ-команда посоветовала мне не использовать флаги -d и -t при вводе команды она отображается в журнале отладки и не поддерживается удаленным сервером. Их можно удалить? Я не выдавал их с командой.

Изменить 2:

SCP Log: (from local machine, Ubuntu 18.04)
==========
debug1: Next authentication method: publickey
debug1: Offering public key: 
RSA SHA256:<key> /home/username/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279 
debug1: Authentication succeeded (publickey).
Authenticated to 'HOSTNAME' ([10.6.26.145]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: Sending environment.
debug1: Sending env LANG = en_IN
debug1: Sending command: scp -v -r -d -t ~/received/

ИТ-команда посоветовала мне не использовать флаги -d и -t при вводе команды она отображается в журнале отладки и не поддерживается удаленным сервером. Их можно удалить? Я не давал им явной команды.

-t - Это полная чушь. Протокол SCP не может работать без -t флаг. Видеть Как работает передача файлов по протоколу SCP (протокол безопасного копирования)?

-d - Используется, когда вы указываете более одного источника. Он указывает серверу, что «целью должен быть каталог».

В обоих случаях я сомневаюсь, что сервер не поддерживает ни одну из них. Поскольку это Ubuntu, он использует OpenSSH с уверенностью 99,9%. И OpenSSH поддерживает эти флаги с самого момента своего существования. Видеть scp.c с 1999 г..


Я почти уверен, что полученный вами совет - просто чушь. В «IT команда» наверное просто не нашел этих переключателей в scp man и получил простой способ действительно помочь вам. Но эти флаги являются внутренними флагами, используемыми для связи между scp как «клиент» и scp как «сервер». Они не задокументированы по назначению.

Также FileZilla не поддерживает даже протокол SCP. Что только способствует вышесказанному - Ваша проблема не имеет ничего общего с "scp флаги ".

Оказывается, это брандмауэр, блокирующий передачу. Причина в том, что это разрешение файла в моей оболочке по умолчанию . * rc файл. .cshrc в таком случае.

Моя оболочка по умолчанию - csh, а права доступа к файлу были

-rwxr-s---

Изменив их на

-rw-r-----

решил вопрос.

Спасибо всем за помощь.