Команда scp не работает

Не работает SCP

Есть необходимость перекинуть с одного сервера на другой 76 GB файлов. Погуглил, и выяснил, что самое то — SCP. Но вот беда, он совсем никак не хочет работать. Пишет

ssh там вообще запущен?
проверь, что порт слушается и что нигде не закрыт на промежуточных хопах
для углубленного логирования используй scp -vvv

Ну я же могу по ssh законнектиться, значит все ок, так?

Значит sshd запущен и порт открыт. И то хлеб.
Что интересного в логах?

ЧТо-то scp -vvv выдает только это:

мм. имел в виду к твоим существующим параметрам scp надо добавить -vvv

Разве тут чего не так data /etc/ssh/ssh_config

Ну я же могу по ssh законнектиться, значит все ок, так?

А на какой порт?

По умолчанию это 22

Это — по умолчанию. А вот «port 22: Connection timed out» заставляет подумать что:

  • Порт нестандарный
  • Фильтр пакетный стоит

Какие варианты решения проблемы? Может есть ещё способ более-менее быстро перекачать 76 Гб инфы?

ssh: connect to host 91.121.208.132 port 22: Connection timed out

debug1: connect to address 188.165.54.142 port 22: Connection timed out

Так и должно быть?

rsync -e ssh, и покажи вывод ssh -v на этот хост

показывай с удалённого хоста /etc/ssh/sshd_config и
lsof -i :22

Проблема-то в чем — уже понятно? Мне — нет.

Может есть ещё способ более-менее быстро перекачать 76 Гб инфы?

RSYNC/HTTP/FTP, просто с диском прийти — достаточно?

Сервера во Франции, вариант с диском вообще не уместен. Качать к себе, потом обратно это вообще крайний вариант.

Судя по конфигу, порт вполне стандартный.

Остается фаервол. Его искать и настраивать.

покажи полную команду scp
и, на всякий случай, предлагаю выставить UseDNS no в конфиге sshd на той стороне (нужен будет рестарт sshd)

Так, давай еще раз, друг за другом, 2 команты:

scp -vvv параметры
ssh -vvv параметры

ВКЛЮЧАЯ строку команды, а не только выхлоп. Сделай их в одной консоли друг за другом.

Копируете с одного сервера на другой сервер, а по ssh заходите на них со своего компьютера? То есть между серверами ssh’а нет?

тогда sftp в руки.

Что и требовалось доказать — промеж серверами tcp/22 закрыт.

ну соединиться с сервером по ssh у тебя не вышло, же

# ssh -vvv root@mobitee.com
.
debug1: connect to address 188.165.54.142 port 22: Connection timed out
ssh: connect to host mobitee.com port 22: Connection timed out

не понял, и где тут по-твоему успешный коннект по ssh?

Ну я же могу по ssh законнектиться

Не можешь, как видно из лога. Путаешься в показаниях 😉

# ssh -vvv root@mobitee.com
ssh: connect to host mobitee.com port 22: Connection timed out

Судя по этому, у тебя таки по SSH тоже не ходит.

Я думаю проблему мы локализовали.

про промежуточные хопы ты видимо пропустил мой намёк, давай намекну потолще:
tracepath mobitee.com/22

Это если конектится со второго сервера, а если с локальной машины, то все ок.

файл где находится? на локальной машине?

Это если конектится со второго сервера, а если с локальной машины, то все ок.

  • Искать, кто не дает конектиться со второго сервера.
  • Копировать на локальную машину.

Это если конектится со второго сервера, а если с локальной машины, то все ок.

Знаешь, в рамках поставленной задачи это звучит из разряда:
«Это если во Франции жить, напротив ДЦ, можно было бы и тупо с хардом сходить»

Проблема найдена: SSH между серверами у тебя таки нет, соответственно и от SCP ты ничего не добьешься напрямую. Ищи другие методы, к примеру, как уже говорили — копируй на локальную, хотя это будет долго (есть подозрение).

Читайте также:  Не работает тропический душ причины

Всем спасибо за помощь. Проблема была в следующем: айпи нового сервера попал в бан фаерволла на старом сервере.

Источник

scp не работает, но ssh работает

Если я хочу отправить что-то через SCP на сервер:

, потом напечатаны три строки и файл не копируется. Однако я могу подключиться к серверу через ssh без проблем:

Как сделать работу scp?

5 ответов

одной из возможных причин такого поведения является наличие любой сообщение распечатайте в процессе входа на сервер. Scp зависит от ssh, чтобы обеспечить полностью прозрачный зашифрованный туннель между клиентом и сервером.

проверьте все сценарии входа на сервере, а также попробуйте использовать другого пользователя. Другой метод определения источника ошибки — использовать-v в команде, чтобы отследить ход транзакции, и посмотреть, где это отказывает. При необходимости можно использовать параметр до-vvv для увеличения детализации. Проверка различных форм УПП также может быть поучительной, как указано в сообщении InChargeOfIT.

scp, под капотом, настраивает туннель с помощью ssh, а затем передает файл по этому туннелю с помощью команды ssh на дальнем конце, чтобы поймать файл по мере его поступления. Это проиллюстрировано использованием tar и ssh для копирования структуры каталогов, сохраняющей владение и времена создания со следующим команды:

, чтобы отправить его, и

получить его назад.

Регистрация целевого пользователя .bashrc или эквивалентный файл.

/ .bashrc является источником для неинтерактивных Логинов. Если есть эхо или команда, которая выводит что-либо, это сломает протокол SCP.

Edit: вы уверены, что вводите допустимый путь в команде scp? Например:

потерпит неудачу (на самом деле, он просто распечатает команду, как вы видите). В этом случае необходимо указать допустимый путь к удаленному серверу.. например, scp test.txt username@remoteserver.com:

отправить файл с рабочего стола в домашнюю папку удаленный сервер:

— это ярлык для вашего домашнего каталога. например, /home/

отправить файл в webroot:

в этом примере пользователю john_doe потребуются права на запись в удаленный каталог /var/www.

это не отвечает на вопрос напрямую, но может быть полезно для таких людей, как я, ищущих решение с замораживанием scp при передаче файлов между 2 удаленными хостами.

If scp зависает из-за сообщений от ssh, он может helpt surpress их:

— B выбирает пакетный режим (предотвращает запрос паролей или парольные фразы.)

— o ssh_option можно использовать для передачи параметров в ssh в формате, используемом в нет отдельного флага командной строки scp. Полная информация о перечисленные ниже параметры и их возможные значения см. В файле ssh_config(5).

в моем случае это, казалось, помогло, но не решило всю проблему. Мы не смогли выяснить, почему scp зависает при переносе с удаленного на удаленный. Он висел посередине папки. 9 раз это сработало, попытка номер 10-нет. Мы подозревали, что это может быть, что он зависает, когда наше VPN-соединение получает всплеск трафика на мгновение, а затем scp не восстанавливается. Он действительно просто висит вечно и даже не дает сообщение об ошибке.

однако я сдался и переключился на sftp. Это намного быстрее, так как он использует прямое соединение между удаленными хостами. Вы должны включить

/.однако файл shh / config машины, на которой выполняется сценарий. Конечно это только решение, если удаленные машины в сети доверенных.

Источник

scp не работает, но ssh работает

Если я хочу отправить что-то через scp на сервер:

, затем печатаются три строки и файл не копируется. Однако я могу подключиться к серверу через SSH без проблем:

Как заставить работать scp?

Одной из возможных причин такого типа поведения является распечатка любого сообщения во время процесса входа на сервер. Scp зависит от ssh для обеспечения полностью прозрачного зашифрованного туннеля между клиентом и сервером.

Проверьте все сценарии входа на сервер, а также попробуйте использовать другого пользователя. Еще один метод определения источника ошибки — использовать -v в команде, чтобы отслеживать ход транзакции и видеть, где она терпит неудачу. При необходимости вы можете использовать до -vvv для увеличения многословия. Проверка различных форм scp также может быть поучительной, как указано в посте InChargeOfIT.

Читайте также:  Прикладная кинезиология не работает

Под капотом scp устанавливает туннель с помощью ssh, а затем передает файл по этому туннелю с помощью команды ssh на дальнем конце, чтобы перехватить файл при его получении. Это иллюстрируется использованием tar и ssh для копирования структуры каталогов с сохранением времени владения и создания с помощью следующих команд:

отправить его и

чтобы вернуть это.

/.bashrc . Это иногда используется в отсутствие chsh .

Проверьте .bashrc целевого пользователя или эквивалентный файл.

/ .bashrc получен для неинтерактивных входов в систему. Если есть эхо или команда, которая что-либо выводит, это нарушит протокол SCP.

/.bashrc когда неинтерактивен (что имеет место для scp ).

Изменить: Вы уверены, что вводите правильный путь в команде scp? Например:

потерпит неудачу (фактически, она просто выведет команду, как вы видите). В этом случае вам нужно будет указать правильный путь к удаленному серверу. Например, scp test.txt username@remoteserver.com:

Отправьте файл с рабочего стола в мою домашнюю папку на удаленном сервере:

это ярлык для вашего домашнего каталога . например, / home /

Отправьте файл в webroot:

В этом примере пользователю john_doe потребуются права на запись в каталог remote / var / www.

На некоторых хостах они неправильно .bash_profile используют неинтерактивные логины, такие как scp. Сообщения, которые печатаются на терминал, могут привести scp к неправильной работе. Если у вас есть сообщения в вашем, .bash_profile это может быть причиной.

Чтобы по-прежнему отображать ваши сообщения для входа в систему, баннер и т. Д. При интерактивном входе в систему и при этом использовать его scp через неинтерактивный вход в систему, добавьте следующее перед любым сообщением, которое будет напечатано в вашем .bash_profile файле.

И еще один альтернативный код:

Который я полагаю, является более длинной версией первого альтернативного кода. Я обнаружил, что на некоторых хостах первый код не работает правильно, но второй работает.

Во время неинтерактивного входа в систему scp он прекратит дальнейшее выполнение .bash_profile и позволит scp работать, но при входе через ssh будут отображаться ваши сообщения для входа.

Примечание. Это также может быть использовано в вашем .bashrc файле, если вы используете его .bash_profile для (для $ PATH), так что только часть его создается при неинтерактивных входах в систему.

Это не дает прямого ответа на вопрос, но может быть полезно для таких людей, как я, ищущих решение с зависанием scp при передаче файлов между двумя удаленными хостами.

Если scp зависает из-за сообщений от ssh, он может помочь подавить их:

-B Выбирает пакетный режим (запрещает запрашивать пароли или парольные фразы).

-o ssh_option Может использоваться для передачи параметров в ssh в том формате, в котором нет отдельного флага командной строки scp. Для получения полной информации о параметрах, перечисленных ниже, и их возможных значениях, смотрите ssh_config (5).

В моем случае это, казалось, помогло, но не решило всей проблемы. Мы не смогли выяснить, почему зависает scp при переносе с удаленного на удаленный. Он висел в середине файла. 9 раз получилось, попытка № 10 не удалась. Мы подозревали, что это может быть зависание, когда наше VPN-соединение на мгновение получает скачок трафика, а затем scp не восстанавливается. Он действительно просто висит навсегда и даже не выдает сообщение об ошибке.

Однако я сдался и переключился на sftp. Это значительно быстрее, так как используется прямое соединение между удаленными узлами. Вы должны включить

/ .shh / config компьютера, на котором запущен скрипт. Конечно, это только решение, если оба удаленных компьютера находятся в вашей доверенной сети.

Читайте также:  Настроить компьютер как было раньше

Источник

Копирование файлов scp

Если у вас есть домашний сервер или сервер в интернете, то вам понадобится способ для безопасного перемещения файлов между машинами. Между локальными машинами мы могли бы просто переносить данные с помощью флешки, но на удаленный сервер нужно передавать данные только через сеть. Есть много способов реализации этой задачи.

В этой статье мы рассмотрим как выполняется копирование файлов с помощью утилиты scp (Secure Copy Command), а также что из себя представляет команда Linux scp. При передаче файлы шифруются, так что больше никто не сможет получить к ним доступ и самое интересное, что вам не нужно настраивать FTP или другое дополнительное программное обеспечение. Будет достаточно сервера SSH.

Что такое SCP?

Команда scp — это утилита, которая работает по протоколу SSH, а значит, все что вам нужно для передачи файла на компьютер, это чтобы на нем был запущен SSH сервер, а также вы должны знать логин и пароль для подключения к нему. С помощью команды scp вы можете не только перемещать файлы между локальной и удаленной системой, но и между двумя удаленными системами. Для этого тоже будет достаточно знать пароли от них. И в отличие от Rsync вам не нужно авторизоваться на одном из серверов.

Копирование файлов scp

Эта статья рассчитана в первую очередь на начинающих, поэтому я попытаюсь объяснять все как можно подробнее. Перед тем, как мы перейдем к практике, нужно рассмотреть общий синтаксис команды:

$ scp опции пользователь1@хост1 : файл пользователь2@хост2: файл

Опции утилиты больше касаются протокола SSH и настраивают общее ее поведение. Дальше следует адрес первого и второго файла. Каждый из них может быть расположен как на локальной, так и на удаленной машине. А теперь рассмотрим основные опции, которые могут нам понадобиться:

  • -1 — использовать протокол SSH1;
  • -2 — использовать протокол SSH2;
  • -B — пакетный режим для передачи нескольких файлов;
  • -C — включить сжатие;
  • — l — установить ограничение скорости в кбит/сек;
  • -o — задать нужную опцию SSH;
  • -p — сохранять время модификации;
  • -r — рекурсивное копирование директорий;
  • -v — более подробный режим.

scp /home/sergiy/file root@losst.ru:/root/

В качестве пользователя нужно использовать любого пользователя, который есть на сервере. Вместо IP вы можете также домен сервера. Только необходимо, чтобы у выбранного пользователя были права записи в указанную папку.

С помощью опции -r вы можете скопировать на удаленную машину целый каталог. Команда будет выглядеть вот так:

scp -r /home/sergiy/photos root@losst.ru:/root/

Убедитесь, что у исходного каталога нет косой черты, а у каталога назначения она должна обязательно быть. Немного изменив синтаксис с косой чертой можно передать все файлы из каталога на удаленный сервер:

scp -r /home/sergiy/photos/* root@losst.ru:/root/

Если поменять местами локальный путь и сервер, то вы сможете копировать файлы scp c удаленного сервера на локальный компьютер:

scp root@losst.ru:/root/file /home/sergiy/

Таким же самым образом вы можете копирование файлов scp или папок с сервера:

scp -r root@losst.ru:/root/photos /home/sergiy/

Обратите внимание, что папка, в которую вы собираетесь копировать должна завершаться косой чертой, иначе папка, которую вы копируете запишется вместо той, в которую нужно скопировать.

Чтобы скачать файл scp из одного сервера на другой, просто необходимо указать данные аутентификации на каждом из них. Например, скопируем один файл:

scp root@losst.ru:/home/root/index.html root@losst.ru:/home/root/www/

Скопируем папку с того же удаленного сервера:

scp root@losst.ru:/root/photos root@losst.ru:/home/root/www/

Выводы

В этой статье мы рассмотрели как выполняется передача файлов scp, как это работает и что вы можете сделать с помощью этой утилиты. Как вы видите, перемещать файлы с одного сервера на другой очень просто. В Linux достаточно понять основы чтобы начать работать эффективнее! А команда scp один из таких инструментов.

Источник

Оцените статью