Вопрос или проблема
Я пытался использовать rcp
для передачи файлов с одной машины на другую с Ubuntu 24.04 в WLS2. Однако система не может найти команду rcp
. Команда scp
работает нормально.
ubuntu@DESKTOP-D6TR:~$ sudo apt update
Hit:1 http://mirrors.aliyun.com/ubuntu noble InRelease
Hit:2 http://mirrors.aliyun.com/ubuntu noble-updates InRelease
Hit:3 http://mirrors.aliyun.com/ubuntu noble-security InRelease
Hit:4 http://mirrors.aliyun.com/ubuntu noble-backports InRelease
Hit:5 http://mirrors.aliyun.com/ubuntu noble-proposed InRelease
Hit:6 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:7 http://archive.ubuntu.com/ubuntu noble InRelease
Hit:8 http://archive.ubuntu.com/ubuntu noble-backports InRelease
Чтение списков пакетов... Готово
Формирование дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Все пакеты обновлены.
ubuntu@DESKTOP-D6TR:~$ sudo apt install openssh-client
Чтение списков пакетов... Готово
Формирование дерева зависимостей... Готово
Чтение информации о состоянии... Готово
openssh-client уже является самой новой версией (1:9.6p1-3ubuntu13).
0 обновлено, 0 установлено новых, 0 удалено и 0 не обновлено.
ubuntu@DESKTOP-D6TR:~$ sudo add-apt-repository universe
sudo apt update
Добавление компонента(ов) 'universe' ко всем репозиториям.
Нажмите [ENTER] для продолжения или Ctrl-c для отмены.
Hit:1 http://mirrors.aliyun.com/ubuntu noble InRelease
Hit:2 http://mirrors.aliyun.com/ubuntu noble-updates InRelease
Hit:3 http://mirrors.aliyun.com/ubuntu noble-security InRelease
Hit:4 http://mirrors.aliyun.com/ubuntu noble-backports InRelease
Hit:5 http://mirrors.aliyun.com/ubuntu noble-proposed InRelease
Hit:6 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:7 http://archive.ubuntu.com/ubuntu noble InRelease
Hit:8 http://archive.ubuntu.com/ubuntu noble-backports InRelease
Чтение списков пакетов... Готово
Hit:1 http://mirrors.aliyun.com/ubuntu noble InRelease
Hit:2 http://mirrors.aliyun.com/ubuntu noble-updates InRelease
Hit:3 http://archive.ubuntu.com/ubuntu noble InRelease
Hit:4 http://mirrors.aliyun.com/ubuntu noble-security InRelease
Hit:5 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:6 http://mirrors.aliyun.com/ubuntu noble-backports InRelease
Hit:7 http://archive.ubuntu.com/ubuntu noble-backports InRelease
Hit:8 http://mirrors.aliyun.com/ubuntu noble-proposed InRelease
Чтение списков пакетов... Готово
Формирование дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Все пакеты обновлены.
ubuntu@DESKTOP-D6TR:~$ apt search rsh-client
Сортировка... Готово
Полный текст поиска... Готово
ubuntu@DESKTOP-D6TR:~$ rcp
Команда 'rcp' не найдена, но может быть установлена с помощью:
sudo apt install rsh-client
ubuntu@DESKTOP-D6TR:~$ sudo apt install rsh-client
Чтение списков пакетов... Готово
Формирование дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Пакет rsh-client не доступен, но на него ссылается другой пакет.
Это может означать, что пакет отсутствует, устарел или
доступен только из другого источника
E: У пакета 'rsh-client' нет кандидата для установки
ubuntu@DESKTOP-D6TR:~$
Я могу найти эту страницу, но я не уверен, как ее использовать/установить.
После того как я нашел этот результат на UbuntuUpdates, я предполагаю, что он был удален из-за небезопасности, но не имею представления, почему пакет был удален, так как нет журнала изменений для удаленных пакетов.
https://www.ubuntuupdates.org/package/core/noble/universe/base/rsh-client
Как вы уже заметили, большинство скриптов работают с scp вместо rcp, если только там нет каких-либо параметров специфической шифрования.
Если это так, обратитесь к документации по scp, чтобы выяснить, что не так.
rsh-client (клиент безопасной оболочки (SSH), для безопасного доступа к удаленным машинам) в Ubuntu 22.04 был обновлен до rsh-redone-client в Ubuntu 24.04. Также rsh-server в Ubuntu 22.04 был обновлен до rsh-redone-server в Ubuntu 24.04.
Чтобы установить rsh-redone-client в Ubuntu 24.04, откройте терминал и введите:
sudo apt install rsh-redone-client
Ответ или решение
Почему команда rcp
отсутствует в Ubuntu 24.04 и как это исправить
Если вы столкнулись с ошибкой "команда rcp
не найдена" в Ubuntu 24.04, выполненной в среде Windows Subsystem for Linux (WSL2), то вы не одиноки. Этот вопрос касается отсутствия пакета rsh-client
, который больше не доступен в стандартных репозиториях Ubuntu, начиная с версии 24.04. Вместо этого было введено новое решение под названием rsh-redone-client
.
Что такое rcp
и почему он больше не поддерживается?
rcp
(Remote Copy Protocol) — это старая утилита для копирования файлов между удалёнными машинами. Однако из-за проблем с безопасностью и недостаточной шифрования, многие дистрибутивы Linux, включая Ubuntu, перестали поддерживать этот инструмент. Вместо него рекомендуется использовать более безопасные альтернативы, такие как scp
(Secure Copy Protocol), который работает через SSH.
Как установить rsh-redone-client
Если для вашей задачи всё же требуется использование rcp
, вы можете установить новый пакет rsh-redone-client
, который будет анаштастично работать как rcp
. Для установки выполните следующую команду в терминале:
sudo apt install rsh-redone-client
Установка и использование
- Обновите список доступных пакетов:
sudo apt update
- Установите
rsh-redone-client
:sudo apt install rsh-redone-client
- После успешной установки вы сможете использовать
rcp
как обычно:rcp [options] source_file destination
Рекомендации по безопасности
Хотя rsh-redone-client
может быть установлен, важно помнить, что его использование может представлять определенные риски безопасности. Поэтому рекомендуется рассмотреть возможность использования scp
или sftp
для всех операций по передаче файлов. scp
использует SSH для передачи данных, что обеспечивает шифрование и защищает ваши данные от потенциальных атак.
Для использования scp
, команда будет выглядеть следующим образом:
scp source_file username@remote_host:/path/to/destination
Где source_file
– файл, который вы хотите передать, username
– имя пользователя удалённого хоста, а remote_host
– это адрес или имя удалённой машины.
Заключение
Кратко резюмируя, команда rcp
больше не поддерживается в Ubuntu 24.04, и вместо неё вам рекомендуется использовать пакеты rsh-redone-client
, если это необходимо. Тем не менее, всегда лучше применять более современные и безопасные альтернативы, такие как scp
. Это не только повысит безопасность ваших данных, но и поможет избежать проблем с совместимостью в будущем, так как многие дистрибутивы Linux продолжают эволюционировать в сторону улучшения протоколов безопасности.