Rdp ����� ssh linux

Подключение к серверу по SSH/RDP

Чтобы управлять сервером удаленно, например со своего локального компьютера, нужно подключиться к нему по протоколу SSH (для серверов на базе ОС Linux) или RDP (ОС Windows).

Подключение к серверу по SSH

Для подключения к серверам с ОС Linux используется протокол SSH. Он позволяет безопасно управлять сервером по сети.

Подключиться к серверу можно:

  • по логину и паролю из панели управления — в таком случае при каждом подключении к серверу нужно вводить пароль;
  • по паре сгенерированных SSH-ключей — при таком подключении вводить пароль не нужно, пользователь идентифицируется при первом подключении. Используется пара ключей: открытый ключ размещается на сервере, а закрытый ключ хранится на компьютере пользователя. Примечание: подключиться к серверу по SSH можно только с того компьютера, на котором хранится закрытый SSH-ключ.

Для подключения к серверу используются данные, которые указаны в панели управления на вкладке Операционная система на странице сервера:

  • публичный IP-адрес сервера (поле IP);
  • логин root и пароль для доступа в систему (поля Username и Password).

Подключение по SSH из Linux / macOS

Для подключения к серверу по SSH введите в терминале команду:

Где server IP — публичный IP-адрес сервера.

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

Подключение по SSH из Windows

В Windows 10 подключение происходит так же, как в Linux и macOS, но через командную строку (cmd.exe).

В более ранних версиях Windows подключение к серверу происходит с помощью PuTTY:

  1. Запустите PuTTY.
  2. Перейдите на вкладку Session. В поле Host Name укажите публичный IP-адрес сервера, а в поле Port — 22.
  3. Укажите тип соединения SSH в поле Connection type.
  4. Если вы подключаетесь с помощью ранее сгенерированных ключей, перейдите на вкладку SSHAuth, нажмите Browse и выберите файл с приватным ключом.
  5. Нажмите Open, чтобы подключиться.
  6. Подтвердите подключение. В открывшейся консоли укажите логин root и пароль для входа на сервер. Если вы ранее создавали пару ключей, то для подключения к серверу пароль указывать не требуется.

Создание пары ключей в Linux / macOS

Чтобы создать пару ключей:

Откройте терминал и выполните команду:

В консоли появится следующий диалог:

Укажите имя файла, в котором будут сохранены ключи, или используйте имя и путь по умолчанию /.ssh/id_rsa .

Система предложит ввести кодовую фразу для дополнительной защиты:

Этот шаг можно пропустить.

Будет создан закрытый ключ (

/.ssh/id_rsa ) и открытый ключ (

/.ssh/id_rsa.pub ). В консоли появится следующее сообщение:

Для вывода открытого ключа в консоль выполните команду:

/.ssh/id_rsa.pub — это путь до файла, в котором хранится открытый ключ. Если на шаге 2 вы изменили путь, то укажите его.

Добавьте открытый ключ в панели управления Selectel — на вкладке Операционная система на странице сервера нажмите кнопку Изменить конфигурацию сервера и введите ключ в поле SSH.

После создания ключей вы можете подключаться к серверу без пароля.

Создание пары ключей в Windows

В Windows 10 создать пару ключей можно таким же образом, как в Linux и macOS, но через командную строку (cmd.exe).

Читайте также:  Ошибка clipsp sys windows 10

В более ранних версиях Windows для генерации ключей используется PuTTY:

  1. Установите PuTTY и запустите приложение PuTTYgen.
  2. В меню Type of key to generate выберите тип ключа RSA и нажмите Generate. Перемещайте курсор по экрану до тех пор, пока не будут созданы ключи.
  3. После создания пары ключей открытый ключ будет выведен на экран. Нажмите Save public key и сохраните его в текстовом файле, например в новом файле с названием id_rsa.pub .
  4. В поле Key passphrase введите кодовую фразу для дополнительной защиты. Этот шаг можно пропустить.
  5. Нажмите Save private key для сохранения закрытого ключа.
  6. Добавьте открытый ключ в панели управления Selectel – на вкладке Операционная система на странице сервера нажмите кнопку Изменить конфигурацию сервера и введите ключ в поле SSH.

После создания ключей вы можете подключаться к серверу без пароля.

Подключение к серверу по RDP

Для удаленного подключения к серверам с ОС Microsoft Windows используется протокол удаленного рабочего стола RDP (Remote Desktop Protocol). Функция «Подключение к удаленному рабочему столу» доступна в Windows по умолчанию. Создавать специальные ключи не потребуется.

Для подключения к серверу используются данные, которые указаны на вкладке Операционная система на странице сервера:

  • публичный IP-адрес сервера (поле IP);
  • логин и пароль для доступа в систему (поля Username и Password).

Подключение по RDP из Windows

Чтобы подключиться к Windows-серверу по RDP:

  1. В поле поиска (меню Пуск) найдите и выберите Подключение к удаленному рабочему столу.
  2. В открывшемся окне в поле Компьютер введите публичный IP-адрес сервера.
  3. Нажмите кнопку Подключиться.
  4. Введите логин и пароль.
  5. Нажмите кнопку OK.

Подключение по RDP из Linux

Чтобы подключиться по RDP через терминал, введите команду:

  • server IP ― публичный IP-адрес сервера;
  • user и password ― логин и пароль.

Подключение по RDP из macOS

Чтобы подключиться к серверу:

  1. Установите и запустите Microsoft Remote Desktop.
  2. Нажмите +. В поле PC name введите публичный IP-адрес, в полях Username и Password введите имя пользователя и пароль.
  3. Нажмите Save и сохраните изменения.
  4. Для подключения к удаленному серверу дважды нажмите на созданное подключение в списке.

Источник

RDP через SSH туннель

Передо мной стоит цель получить удаленный доступ через RDP к машине с Linux через SSH-туннель. В локальной сети всё работает без проблем: могу подключится через SSH, к серверу XRDP, и всё вместе одновременно. Но вот вне локальной сети возникают проблемы. Делал всё так:

1. В настройках роутера создаю виртуальный сервер и указываю внешний и внутренний порты – 22.

2. Присоединяюсь по SSH к Linux машине по ip (он статический) через порт 22. Успешно.

3. Указываю перенаправление портов с локального 5555 на (ip Linux-машины):3389

4. Запускаю средство удаленного доступа и получаю Failure.

Так вот, в локалке схема работает, виртуального сервера при этом нету. И я вот думаю, может проблема в нём? Заранее спасибо за помощь.

3. Указываю перенаправление портов с локального 5555 на (ip Linux-машины):3389

поподробнее, возможно тут и ошибочка какая

Напиши сюда ту команду, которую ты пытался ввести.

Запускаю средство удаленного доступа и получаю Failure.

Запускаешь через socksv5 прокси или как? Или ты на самой машине с ssh запускаешь? — в таком случае нужен X11forwarding.
У тебя доступ с роутера до машины с rdp есть? Просто я бы сделал проще, просто бы перенаправил порт роутера сразу на порт rdp сервера.

ssh -L local_port:rdp_server_ip:3389 user@ssh_ip

Укажу подробности Локальная схема (на роутере никаких настроек, все машины соединены wi-fi роутером): 1. На Linux машине поднял openssh-server и xrdp 2. На Windows машине запускаю средство подключение к удаленному рабочему столу и ввожу айпи Linux машины в локальной сети. Всё работает. Закрываю соединение. 3. Открываю putty и конекчусь по порту 22, в настройках SSH туннелирования указываю L5555; localhost:3389; Подключение есть, я в консоли Linux машины. 4. Через средство подключения к удаленному столу подключаюсь к localhost:5555. Есть коннект, я опять на Linux машине. Те же действия я сделал с планшета на Android. Использовал в качестве SSH консоли использовал ConnectBot и в качестве rdp GUI – FREErdp. Результаты аналогичны. С какой-то Linux машины не пробовал устанавливать такое соединение.

Читайте также:  Поддержка ос windows linux mac os

Вторая схема была уже вне локалки. Windows и android машины не соединены с Linux машиной роутером. 1. На роутере создаю виртуальный сервер и выставляю локальный ip Linux машины и порты 3389 2. Подключаюсь к удаленному столу с windows и android машины одинаково успешно. По SSH законнектится не могу, так как в настройках указан порт 22, а на роутере 3389. 3. Ставлю на роутере порты сервера 22. Теперь SSH работает, rdp нет. 4. Создаю туннель: L5555; внешний-ip:3389 5. Опять конекчусь по rdp к localhost:5555, как в первой схеме. И вот тут ничего не работает.

Источник

VPS на Linux с графическим интерфейсом: запускаем сервер RDP на Ubuntu 18.04

В предыдущей статье мы разобрали запуск сервера VNC на виртуальной машине любого типа. У этого варианта масса недостатков, основным из которых являются высокие требования к пропускной способности каналов передачи данных. Сегодня мы попробуем подключиться к графическому рабочему столу на Linux по RDP (Remote Desktop Protocol). Система VNC основана на передаче массивов пикселей по протоколу RFB (Remote Framebuffer), а RDP позволяет отправлять более сложные графические примитивы и высокоуровневые команды. Обычно он используется для организации служб удаленных рабочих столов в Windows, но серверы для Linux также доступны.

Оглавление:

Установка графического окружения

Мы возьмем виртуальную машину с Ubuntu Server 18.04 LTS с двумя вычислительными ядрами, четырьмя гигабайтами оперативной памяти и жестким диском (HDD) на двадцать гигабайт. Более слабая конфигурация плохо подходит для графического десктопа, хотя это зависит от решаемых задач. Не забывайте использовать промокод Habrahabr10 для получения скидки в 10% при заказе.

Установка окружения рабочего стола со всеми зависимостями выполняется следующей командой:

Как и в предыдущем случае, мы выбрали XFCE из-за относительно невысоких требований к вычислительным ресурсам.

Русификация сервера и установка ПО

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

Того же эффекта можно достичь, отредактировав вручную файл /etc/default/locale.

Для локализации GNOME и KDE в репозитории есть пакеты language-pack-gnome-ru и language-pack-kde-ru — они понадобятся, если вы будете использовать программы из этих сред рабочего стола. В XFCE переводы устанавливаются вместе с приложениями. Дальше можно инсталлировать словари:

Кроме того, инсталляция переводов может потребоваться для некоторых прикладных программ:

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

Установка и настройка сервера RDP

В репозиториях Ubuntu есть распространяемый свободно сервер Xrdp, которым мы и воспользуемся:

Если все прошло нормально, сервер должен запуститься автоматически:

Сервер Xrdp запускается с правами пользователя xrdp и по умолчанию берет cертификат /etc/ssl/private/ssl-cert-snakeoil.key, который можно заменить собственным. Для доступа на чтение файла нужно добавить пользователя в группу ssl-cert:

Настройки по умолчанию можно найти в файле /etc/default/xrdp, а все прочие конфигурационные файлы сервера лежат в каталоге /etc/xrdp. Основные параметры находятся в файле xrdp.ini, который можно не менять. Конфиг хорошо документирован, к тому же в комплекте имеется соответствующие manpages:

Осталось только отредактировать скрипт /etc/xrdp/startwm.sh, который исполняется при инициализации пользовательской сессии. Предварительно сделаем резервную копию скрипта из дистрибутива:

Чтобы запустить окружение рабочего стола XFCE, потребуется сценарий примерно такого содержания:

Обратите внимание: в скриптах лучше прописывать полный путь к исполняемым файлам — это хорошая привычка. Сделаем скрипт исполняемым и на этом настройку сервера Xrdp можно считать законченной:

Читайте также:  Airpods pro windows 10 пропадает звук

Настройка межсетевого экрана

По умолчанию Xrdp слушает TCP-порт 3389 на всех интерфейсах. В зависимости от конфигурации виртуального сервера может потребоваться настройка межсетевого экрана Netfilter. В Linux это обычно делается с помощью утилиты iptables, но в Ubuntu лучше использовать ufw. Если IP-адрес клиента известен, настройка осуществляется следующей командой:

Разрешить соединения с любого IP можно так:

Протокол RDP поддерживает шифрование, но открывать доступ к серверу Xrdp из сетей общего пользования — плохая идея. Если у клиента нет фиксированного IP, для повышения уровня безопасности сервер должен слушать только localhost. Доступ к нему лучше настроить через туннель SSH, который безопасно перенаправит трафик с клиентского компьютера. Аналогичный подход мы использовали в предыдущей статье для сервера VNC.

Подключение к серверу RDP

Для работы с окружением рабочего стола лучше создать отдельного непривилегированного пользователя:

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

Подключиться к серверу можно с помощью любого клиента RDP, включая встроенный клиент службы удаленных рабочих столов Windows. Если Xrdp слушает внешний интерфейс, никаких дополнительных телодвижений не понадобится. Достаточно указать в настройках соединения IP-адрес VPS, имя пользователя и пароль. После подключения мы увидим примерно такую картину:

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

Если сервер Xrdp слушает только localhost, на клиентском компьютере трафик придется упаковать в туннель SSH (на VPS должен быть запущен sshd). Под Windows можно использовать графический клиент SSH (например, PuTTY), а в UNIX-системах нужна утилита ssh:

После инициализации туннеля клиент RDP будет подключаться уже не к удаленному серверу, а к локальному хосту.

С мобильными устройствами сложнее: способные поднять туннель клиенты SSH придется покупать, к тому же в iOS и iPadOS фоновая работа сторонних приложений затруднена из-за слишком хорошей оптимизации энергопотребления. На iPhone и iPad поднять туннель в отдельном приложении не получится — потребуется приложение-комбайн, которое само умеет устанавливать соединение RDP через SSH. Такое, например, как Remoter Pro.

Менеджер сессий и сеансы пользователей

Возможность многопользовательской работы реализована непосредственно в сервере Xrdp и не требует дополнительной настройки. После запуска сервиса через systemd один процесс работает в режиме демона, слушает порт 3389 и взаимодействует через localhost с менеджером сессий.

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

Автоматический запуск менеджера сессий прописан в файле /etc/default/xrdp, а конфигурация хранится в /etc/xrdp/sesman.ini. По умолчанию выглядит она примерно так:

Здесь можно ничего не менять, стоит только запретить вход с правами root (AllowRootLogin=false). Для каждого авторизовавшегося в системе пользователя запускается отдельный процесс xrdp: если отсоединиться не завершив сеанс, пользовательские процессы по умолчанию продолжат работать, а к сеансу можно будет подключиться заново. Настройки можно изменить в файле /etc/xrdp/sesman.ini (секция [Sessions]).

Переключение раскладок клавиатуры

С двухсторонним буфером обмена проблем обычно не возникает, а вот с русской раскладкой клавиатуры придется немного пошаманить (русская локаль должна быть уже установлена). Отредактируем клавиатурные настройки сервера Xrdp:

В конец конфигурационного файла нужно добавить следующие строки:

Остается сохранить файл и перезапустить Xrdp:

Как видите, поднять сервер RDP на линуксовом VPS несложно, а в предыдущей статье мы уже разобрали настройку VNC. Помимо этих технологий, есть еще один интересный вариант: использующая модифицированный протокол NX 3 система X2Go. С ней мы разберемся в следующей публикации.

Источник

Оцените статью