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

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

$ scp file server:
                   _____  _____  _____
$

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

$ ssh server

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

2
задан scdmb
12.01.2023 17:47 Количество просмотров материала 3615
Распечатать страницу

5 ответов

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

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

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

  tar czf - ./* | ssh jf@otherserver.com tar xzf - -C ~/saved_tree

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

ssh jf@otherserver.com "tar czf - ~/saved_tree" | tar xzvf - -C ./

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

57
отвечен faitjx 2023-01-14 01:35

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

40
отвечен spoulson 2023-01-14 03:52

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

scp test.txt username@remoteserver.com

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

пример использования:

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

scp /path/to/local/file yourremoteusername@servername.com:/path/to/remote/directory

получите файл:

scp yourremoteusername@servername.com:/path/to/remote/file /path/to/local/directory

примеры:

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

scp ~/Desktop/myfile.txt john_doe@10.1.1.10:~/

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

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

scp ~/Documents/working/index.html john_doe@johndoe.com:/var/www/index.html

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

12
отвечен InChargeOfIT 2023-01-14 06:09

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

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

scp -o "StrictHostKeyChecking no"

и / или

scp -B

от человека scp:

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

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

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

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

Host example.com
    AgentForward yes

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

0
отвечен anarchist912 2023-01-14 08:26

Я звонил exec /bin/bash in .cshrc.

удаление это решило проблему для меня.

0
отвечен dips 2023-01-14 10:43

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх