Я пытаюсь переместить файл с виртуальной машины (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-----
решил вопрос.
Спасибо всем за помощь.