Сообщение об ошибке при использовании scp через ssh

Сообщение об ошибке при использовании scp через ssh

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

 mut@mylocalcomputer:~$ rsync -chavzP --stats [email protected]:/home/users/mut/thedirectoryIneed /User/mut/
 [email protected]'s  password: 
 protocol version mismatch -- is your shell clean?
 (see the rsync man page for an explanation)
 rsync error: protocol incompatibility (code 2) at /SourceCache/rsync/rsync-42/rsync  /compat.c(61) [receiver=2.6.9] 

Поэтому я запустил rsync и следовал инструкциям по диагностике проблемы, используя следующую команду (ввод в локальную командную строку):

ssh [email protected] /bin/true > out.dat

ввел пароль и ничего не получил в ответ — просто выдал новое приглашение).

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

 C0644 183 fileineedfromremoteserver.cpp

но файл не копируется (или, по крайней мере, я не могу найти его нигде на своем компьютере).

Есть ли какие-нибудь предложения относительно того, в чем может быть проблема или что еще я могу попробовать?

Примечание: Мой local — это терминал CLI по умолчанию на OSX(BSD), а server — GNU linux. У меня никогда не было проблем до копирования файлов с сервера, и единственное, что я могу вспомнить, что изменилось с тех пор, это то, что в какой-то момент я ввел команду для генерации ключа SSH из local (в неудачной попытке автоматизировать вход на сервер без необходимости каждый раз вводить пароль). Я сомневаюсь, что это как-то связано с этим.

решение1

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

Файлы, о которых идет речь, специфичны для используемой вами оболочки, но вот как можно исправить это для bash.

Войдя в учетную запись на удаленной системе (mambo.m66.com), выполните следующее: . .bashrc(обратите внимание, что первая точка не является опечаткой). Если вы видителюбойвывод при запуске этой команды, вам следует переместить команду из файла .bashrc в .bash_profile.

abydos:~ jonv$ touch sourcefile
abydos:~ jonv$ echo 'echo This should work.' > .bash_profile
abydos:~ jonv$ rsync jonv@localhost:sourcefile destfile
abydos:~ jonv$ echo 'echo This should NOT work.' > .bashrc
abydos:~ jonv$ rsync jonv@localhost:sourcefile destfile
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at /SourceCache/rsync/rsync-42/rsync/compat.c(61) [receiver=2.6.9]

В сети полно ресурсов, если вы хотите почитать об этом подробнее. Вы можете поискать '.bashrc vs .bash_profile' и получить много информации.

Связанный контент