Удаленный доступ на Ubuntu с Windows машины

В данной статье будет описано как организовать удаленный доступ к машине под Ubuntu с машины под Windows при этом будут использоваться такие утилиты как SSH, Putty, Tight VNC и Vino. Общий принцип работы: с компьютера под Windows создается защищенный SSH-туннель до Ubuntu и через него создается VNC-подключение (удаленный рабочий стол).

Статья делится на четыре части:

  • Установка и активация SecureShellServer:
    sudo apt-get install openssh-server
    service ssh status
    ssh start/running, process 2006

    Проверка открытости 22 порта (порт, используемый по умолчанию SSH):

    netstat -tulpan | grep :22
    tcp    	0  	0 0.0.0.0:22  	0.0.0.0:*     	LISTEN  	-

    В Linux ля подключения по SSH с использованием локального проброса портов (local port forwarding) используется в общем виде следующая команда

    ssh -C <ip-адрес_машины> -p <SSH-порт> -L <локальный_порт>:<адрес_машины>:<удаленный_порт> -l <пользователь>

    Это означает, что любое соединение, исходящее из локального компьютера (localhost) через порт <локальный_порт> будет перенаправлено по SSH-тунелю на <удаленный_порт> удаленной машины.

    Существует некоторая путаница относительно какие же IP указывать в <ip-адрес_машины> и <адрес_машины>. Если компьютер находится за роутером (NAT’ом) то <адрес_машины> должен быть внутренним ip-адресом компьютера (например, 10.0.0.5), а в <ip-адрес_машины> внешним ip-адресом роутера. Если компьютер подключается к Интернету напрямую, то адреса <ip-адрес_машины> и <адрес_машины> будут одинаковыми.

    Подводя итог про туннелирование рассмотрим пример:

    ssh  -l myuserid  -L 7777:work:22  gate
    ssh -p 7777 localhost

    Данная комманда делает следующее: создается защищенное ssh-подключение к машине gate под пользователем myuserid. Одновременно с этим начинается прослушивание на локальной (с которой осуществлялось подключение) машине на порту 7777. Если организуется подключение на этот порт (опять изнутри самой локальной машины), то это соединение туннелируется в ssh-соедиенние, доходит до машины gate и с нее осуществляется соединение на машину work на 22 порт. После этого мы проверяем работу туннеля — подключаясь по ssh на локальный порт 7777 мы в итоге подключаемся к машине work (при учете что на ней настроен ssh сервер на порту 22).

    Усиленная защита при использовании SSH-туннеля достигается за счет того, что только один порт должен быть открыт наружу (SSH) и зашифрованное подключение будет идти только через этот порт.
    На сервере проверяем присутствует ли папка

    /home/<имя_пользователся>/.ssh

    и файл

    /home/<имя_пользователся>/.ssh/authorized_keys

    в ней, если нет, то создаем под пользователем <имя_пользователся>(как правило, это первый пользователь в системе или администратор)

    mkdir ~/.ssh
    cd ~/.ssh
    touch authorized_keys

    Настраиваем ssh для большей безопасности. Файл настроек лежит по адресу

    /etc/ssh/sshd_config

    Делаем резервную копию

    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

    В общем случае следует изменить:

    • TCP-порт прослушивания (по умолчанию 22):
      Port <Порт_на_котором_SSH_будет_ждать_подключения>
    • Отключить ненадежный старый протокол SSH ver.1:
      Protocol 2
    • Разрешить аутентификацию парой открытого/закрытого ключей:
      PubkeyAuthentication yes
    • Указывать, где смотреть на разрешенные публичные ключи:
      AuthorizedKeysFile %h/.ssh/authorized_keys
    • Отключить возможность аутентификации с помощью пароля (можно сделать и позже, после удачного первого соединения):
      PasswordAuthentication no

    Для большей безопасности следует настроить на аутентификацию SSH с помощью открытого ключа.
    Разрешенные к подключению по ssh публичные ключи хранятся в файле

    ~/.ssh/authorized_keys

    Генерируем пару открытый/закрытый ключей на машине, с которой будем подключаться (будет описано далее) и копируем открытый ключ в этот файл.

    Особое внимание нужно обратить на форматирование – весь ключ должен быть размещен в одну строку и начинаться с «ssh-rsa » и доступ к файлу (-rw——- (600)).

    Настраиваем правильный доступ к файлу с ключами

    chmod go-w $HOME $HOME/.ssh
    chmod 600 $HOME/.ssh/authorized_key
    chown `whoami` $HOME/.ssh/authorized_keys

    ИЛИ

    В файле настроек /etc/ssh/sshd_config изменяем

    StrictModes no

    Для применения настроек, внесенных в файл /etc/ssh/sshd_config, необходимо перезапустить демон sshd.

    sudo /etc/init.d/ssh restart
  • Скачиваем putty.exe.
    Перед тем как погрузиться в настройки Putty необходимо сделать несколько замечаний.

    • Putty сохраняет настройки в профили.
    • Для сохранения всех настроек в профиль нужно перейти в меню Session в графе Saved Session ввести имя профиля и нажать Save. Для того чтобы загрузить определенный профиль в Putty в том же меню нужно выбрать нужный профиль по имени и нажать Load.
    • Для автоматической загрузки определенного профиля при запуске Putty нужно создать ярлык на exe-файл и в строке Рабочая папка дописать после пути к exe файлу добавить
      -load <имя_профиля>

    Для улучшения безопасности будет использоваться:

    • локальный проброс портов
    • система с открытым ключом

    В случае использования SSH-подключения для доступа по VNC (удаленному рабочему столу) необходимо настроить проброс портов, так называемый local port forwarding. Он используется для повышения безопасности, так как при использовании VNC данные передаются в открытом виде.

    Для проброса портов в Putty переходим в меню Connection -> SSH -> Tunnels и добавляем 5900 как "Source port", localhost:5900 в "Destination" и нажимаем Add.

    Для создания пары открытого/закрытого ключей можно использовать программу Puttygen. Скачиваем Puttygen.exe. В параметрах выбираем SSH-2 RSA, количество битов устанавливаем 2048 и нажимаем кнопку Generate.

    Для дополнительной защиты можно дважды прописать "passphrase". Если есть необходимость при SSH-соединении сразу входить в консоль, то поле можно оставить пустым.

    Далее нажать Save public key – для сохранения открытого ключа (*.pub) и Save private key для сохранения закрытого ключа (*.ppk).

    Открытый ключ сохраняется в понятном только Putty форматировании. Поэтому для установки его в Linux нужно сделать следующее:

    1. Пока puttygen еще открыта – скопировать публичный ключ в разделе "Public key for pasting…" И вставить в файл authorized_keys на сервере.
    2. Указать Putty на файл закрытого ключа в меню Connection -> SSH -> Auth в разделе "Private key file for authentication" сгенерированный файл*.ppk.
  • По умолчанию в Ubuntu уже включен VNC-сервер Vino. Для его настройки нужно перейти в Menu -> System -> Preferences -> Remote Desktop и включить удаленный доступ. В настройках можно включить аутентификацию по паролю, но нельзя настроить порт прослушивания (используется 5900).
    Для возможности более детальной настройки рекомендуется установить X11VNC.
  • Скачиваем TightVNC и устанавливаем. Для целей данной статьи достаточно выбрать только роль клиента.

    Запускаем на Windows машине TightVNC и в поле вбиваем

    localhost:5900

Источник 1
Источник 2
Источник 3

Реклама

One response to “Удаленный доступ на Ubuntu с Windows машины

  1. В самом начале, в разделе «Установка и активация SecureShellServer:» при выполнении второй строки «service ssh status» выдаётся ошибка: «status: Неизвестная задача: ssh».

    Чтобы исправить, нужно взамен «service ssh status» выполнить «sudo service ssh status».

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s