Стандартная команда SCP не выполняется (VPN/сеть активна)

Стандартная команда SCP не выполняется (VPN/сеть активна)

Мой компьютер для разработки работает на Fedora (36).

Недавно я попытался скопировать файл на удаленный сервер (CentOS 7) и получил загадочное сообщение об ошибке:

scp: dest open(""): Такого файла или каталога нет

Команда выглядит примерно так:

scp -C foo.ext user@internal-vpn-ip:~/

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

scp -C foo.ext user@remote-ip:/path/to/user/

и вуаля, это сработало!

Вопрос в том, почему~Расширение пути больше не работает?

решение1

Похоже, в RedHat 9+ SCP теперь использует SFTP.

вУстаревание OpenSSH SCPна странице приведен список несовместимостей и предостережений относительно систем до RedHat 9 и RedHat 9+, включая этот соответствующий фрагмент.

Другое различие между протоколами заключается в расширении обработки пути на основе ~. OpenSSH 8.7 и более поздние версии поддерживают специальное расширение SFTP для работы с этим расширением. К сожалению, это расширение не поддерживается в более ранних версиях, поэтому копирование папок из новой версии RHEL в старую завершится ошибкой, если используется обработка пути ~. В таких случаях рекомендуемым исправлением является предоставление абсолютных путей.

Вот и все, теперь понятно, почему нужно вручную расширять путь. Раздражает, но теперь хотя бы понятно, почему :)

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