От исполняемого файла Linux к удалённому снимку
Руководство ведёт от загрузки rdp-cli до снимка рабочего стола Windows по RDP. Оно описывает версию 0.1.0 на основе имеющихся результатов: Linux x86_64, сборка 2026092203, прошла программную приёмку на десяти системах; ARM64, сборка 2026092301, — в двенадцати средах, включая Raspberry Pi 4 и DGX Spark. Статья не представляет новое испытание и не утверждает, что проверены все дистрибутивы Linux.
Выбрать архитектуру и проверить файл
На компьютере Linux, где будет работать rdp-cli:
uname -m
На странице загрузки выберите Linux x86_64 для x86_64 или Linux ARM64 для aarch64. Процессор ARM с 32-разрядной ОС не входит в область поддержки этой версии ARM64. Для Mac с macOS нужен пакет macOS. Скачайте исполняемый файл; отдельные материалы исходного кода и лицензий не нужны для запуска.
До запуска сравните SHA-256 с данными файла нужной архитектуры на странице загрузки. Для x86_64:
sha256sum ./rdp-cli-linux-x86_64
Только после совпадения контрольной суммы разрешите выполнение и проверьте версию:
chmod u+x ./rdp-cli-linux-x86_64
./rdp-cli-linux-x86_64 --version
Для ARM64:
sha256sum ./rdp-cli-linux-arm64
Только после совпадения контрольной суммы разрешите выполнение и проверьте версию:
chmod u+x ./rdp-cli-linux-arm64
./rdp-cli-linux-arm64 --version
--version должен вывести сведения о версии в JSON. Продукт представляет собой один статический ELF и запускается обычным пользователем без установки от root. Нативное окно просмотра при этом использует службы отображения работающего рабочего стола. Область приёмки не означает проверку всех рабочих столов, ядер или аудиоустройств.
Подключиться из Bash
На сервере Windows уже должен быть включён RDP, вашей учётной записи должен быть разрешён удалённый вход, а сервер должен быть доступен с Linux через нужную сеть или VPN. Установка клиента не включает службу Windows.
Выполните следующий блок в Bash из каталога исполняемого файла. На ARM64 замените первую строку на rdp_cli=./rdp-cli-linux-arm64. Замените 192.0.2.20 и USER разрешённым адресом и учётной записью; символы пароля при вводе не отображаются.
rdp_cli=./rdp-cli-linux-x86_64
IFS= read -r -s -p 'Password: ' rdp_password
printf '\n'
printf '%s' "$rdp_password" | "$rdp_cli" connect --host 192.0.2.20 --user USER --password-stdin
unset rdp_password
Продолжайте в той же оболочке, чтобы переменная rdp_cli оставалась определена. Канал передаёт пароль и закрывает стандартный ввод. Для доменной учётной записи добавьте --domain DOMAIN; не сочетайте несколько источников пароля. Сейчас RDP по умолчанию использует --cert-policy ignore: изучите connect --help и настройте проверку сертификатов для своей среды. Политика сертификатов не исправляет недоступность сервера или неверные учётные данные.
Прочитайте JSON: при ошибке проверьте error.code и error.message; при успехе сохраните data.session как SESSION.
Проверить состояние и первый PNG
"$rdp_cli" status --session SESSION
"$rdp_cli" screenshot --session SESSION --out first-screen.png
Проверьте состояние подключения и управления. Откройте first-screen.png средством просмотра изображений и определите текущий экран до выполнения действий. Подключённый сеанс всё ещё может показывать вход, приветствие или занятое приложение. Сохраните data.observation из ответа снимка для последующего ввода на основе этого изображения; это не постоянный идентификатор сеанса.
Для команд снимков и ввода локальное окно необязательно. Чтобы человек наблюдал за тем же сеансом на рабочем столе Linux:
"$rdp_cli" watch --session SESSION --viewer window
Окно запускается только для просмотра; человек принимает управление явно. Закрытие окна только для просмотра сохраняет подключение, а потеря окна, владеющего управлением, оставляет ввод на паузе. После переподключения или передачи управления изучите новый снимок и учитывайте состояние управления.
Устранить конкретную ошибку
- Неверный формат исполняемого файла: сравните
uname -mс загруженной архитектурой; файлы x86_64 и ARM64 невзаимозаменяемы. - Отказано в доступе: проверьте право выполнения и разрешает ли файловая система запуск программ. Выберите подходящий пользовательский каталог вместо повышения привилегий.
- Ошибка подключения или аутентификации: проверьте маршрут, порт, службу RDP, права учётной записи и полученную ошибку. Не повторяйте пароли и не включайте устаревший TLS для не связанных с ним сбоев.
SDL_INIT_FAILEDбез рабочего стола: нативному окну нужна графическая сессия; снимки через CLI остаются доступны без рабочего стола. Ошибка окна сама по себе не доказывает сбой RDP.CREDENTIAL_STORE_FAILED: сохранённые учётные данные используют Secret Service хоста. Если он недоступен, выберите поддерживаемый источник, например--password-stdin; не считайте данные сохранёнными.
Продолжите с кратким руководством, справочником команд или передачей файлов по RDP. Обмен файлами дополнительно требует перенаправления дисков на сервере и разрешений на файлы.