Команда подключения по ssh windows

Уровень сложностиПростой

Время на прочтение5 мин

Количество просмотров304K

Программистов, сисадминов, devops’ов, тестировщиков часто объединяет использование некоторых общих технологий. Например, возможность иметь удалённый доступ к серверу пригодилось бы любому из указанной выше анекдотичной компании. Поэтому в этой статье мы рассмотрим основы работы с протоколом SSH на базовом уровня (без генерации ключей, подписей, мам, пап и кредитов). «Продвинутое» использование посмотрим уже отдельно, в следующий раз. Материал подготовил Макс, автор YouTube-канала PyLounge. Поехали!

Введение

SSH (Secure SHell — защищенная оболочка) — сетевой протокол прикладного уровня, предназначенный для безопасного удаленного доступа к различным системам (Linux, Windows, Mac).

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

Эта служба была создана в качестве замены не зашифрованному Telnet и использует криптографические техники, чтобы обеспечить, что всё сообщение между сервером и пользователем было зашифровано.

Чтобы установить SSH-соединение, необходимы два компонента: SSH-сервер и SSH-клиент. Сервер прослушивает определенный порт (по умолчанию это порт 22) и при успешной аутентификации дает доступ пользователю. Все команды, которые используются на SSH-клиенте, отправляются через защищенный канал связи на SSH-сервер, на котором они выполняются и откуда отправляют результат работы обратно клиенту.

SSH-сервер

Устанавливается на управляемой операционной системе и принимает входящие подключения от клиентских машин, проверяя соединение одним из способов:

  • по IP-адресу клиента, что не слишком безопасно из-за риска подмены;

  • по публичному ключу клиента и имени пользователя. Нужно создать приватный (закрытый) и публичный (открытый) ключ. Зашифровав информацию одним ключом, можно расшифровать ее только другим;

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

Платные и бесплатные SSH-серверы есть для всех распространенных ОС:

  • BSD — OpenSSH;

  • Linux — dropbear, lsh-server, openssh-server;

  • Windows — freeSSHd, copssh, WinSSHD, OpenSSH и т. д.

SSH-клиент

Используется для входа на удаленный сервер и выполнения команд. Через клиент выполняется управление удаленным компьютером.

SSH-клиенты разработаны для всех ОС. Имеют платные и бесплатные версии:

  • Linux/BSD — openssh-client, putty, ssh, Vinagre;

  • Windows — PuTTY, SecureCRT, ShellGuard;

  • Android — connectBot.

Встроенный SSH-клиент Windows, основанный на OpenSSH, предустановлен в ОС, начиная с Windows 10 1809.

Установка OpenSSH на Ubuntu

Установка с помощью менеджера пакетов apt-get:

sudo apt-get install openssh-server

Проверка SELinux

Security Enhanced Linux, или SELinux – это усовершенствованный механизм контроля доступа, встроенный в большинство современных дистрибутивов Linux. Первоначально он был разработан Агентством национальной безопасности США для защиты компьютерных систем от вторжения злоумышленников и взлома. SELinux также может помешать работе с ssh. Поэтому необходимо убедиться, что он отключен, либо отключить его.

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

sudo apt-get install policycoreutils
sudo apt-get install net-tools

Проверяем статус SELinux. Состояние должно быть disable.

sestatus

Подключение к виртуальной машине с типом подключения NAT

Если виртуальная машина использует тип сетевого подключения NAT, то первоначально необходимо настроить проброс портов. Пробросим порт хоста 2222 (или любой свободный) на гостевой порт виртуальной машины номер 22 (порт ssh по умолчанию).

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

Подключение по ssh через PuTTY

Т.к. в качестве сетевого подключения у виртуальной машины используется NAT, при подключении мы будем указывать петлевой адрес localhost (127.0.0.1) c портом, на который был назначен проброс.

После этого вводим имя пользователя (пользователь должен существовать в linux!!!) и пароль от этого пользователя.

Подключение по ssh через Командную строку Windows (cmd)

Запускаем командную строку сочетанием клавиш Win + R . В открывшемся окне указываем cmd. Нажимаем OK.

В общем видео подключение по ssh имеет вид:

ssh имя_пользователя@ip_адрес_компьютера_к_которому_подключаемся -p порт

Если для подключения используется стандартный порт ssh — 22, то порт можно не указывать.

В открывшемся окне вводим команду:

ssh student@127.0.0.1 -p 2222

Вводим пароль пользователя. Всё. Вы великолепны!

Подключение к виртуальной машине с типом подключение Сетевой мост

С типом подключения Сетевой мост необходимо выдать статический ip для Linux системы. Дальнейшее подключение будет уже по этому, выданному ip, а не через localhost.

Установка статического ip

Начиная с выпуска Ubuntu 17.10 NetPlan теперь это инструмент настройки сети по умолчанию для управления настройками сети, заменяющий файл конфигурации /etc/network/interfaces, который использовался в предыдущих версиях.

Файлы конфигурации для Netplan находятся в каталоге /etc/netplan и написаны на языке YAML. В этом каталоге вы найдете файлы конфигурации YAML.

Откроем конфигурационный файл:

sudo nano /etc/netplan/*.yaml

Отредактируем конфигурационный файл:

network:  
  version: 2
  renderer: NetworkManager
  ethernets:
      enp0s3:
          dhcp4: false
          addresses: [10.40.0.224/24]
          gateway4: 10.40.0.1
          nameservers:
              addresses: [10.2.0.8, 10.2.0.3]

Здесь:

  • ethernets — указывает на проводное Ethernet подключение;

  • enp0s3 — имя сетевого интерфейса (можно узнать командой ifconfig);

  • dhcp4 — автоматическая выдача ipv4-адреса с помощью службы dhcp (для ipv6 указывать dhcp6);

  • addresses — ip-адрес и маска сети, которые назначаются компьютеру;

  • gateway4 — шлюз по умолчанию;

  • nameservers — список dns-серверов.

Посмотреть настройки можно с хостовой машины на Windows с помощью команды ipconfig /all.

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

sudo netplan apply

Подключение по ssh

Запускаем командную строку сочетанием клавиш Win + R . В открывшемся окне указываем cmd. Нажимаем OK.

В открывшемся окне вводим команду:

ssh student@10.40.0.224

Вводим пароль пользователя. Всё. Вы великолепны (2)!

Заключение

Несмотря на высокую защиту протокола, использование стандартного порта значительно повышает риск взлома сервера. Например, это можно сделать при помощи brute-force (атака полным перебором). Порт 22 — открытый, поэтому злоумышленнику нужно только подобрать логин и пароль к серверу. Это сложно, но возможно. Чтобы максимально ограничить доступ к серверу для злоумышленников (настроить брандмауэр, iptables), можно сменить SSH-порты.

Ресурсы, которые использовал

  1. Как включить SSH в Ubuntu 20.04 (Routerus):https://routerus.com/how-to-enable-ssh-on-ubuntu-20-04/

  2. Коротко об SSH / Хабр: https://habr.com/ru/sandbox/166705/

  3. Что такое SSH (блог REG.RU): https://help.reg.ru/support/hosting/dostupy-i-podklyucheniye-panel-upravleniya-ftp-ssh/chto-takoye-ssh

В Windows 10 и Windows Server 2019 появился встроенный SSH клиент, который вы можете использовать для подключения к *Nix серверам, ESXi хостам и другим устройствам по защищенному протоколу, вместо Putty, MTPuTTY или других сторонних SSH клиентов. Встроенный SSH клиент Windows основан на порте OpenSSH и предустановлен в ОС, начиная с Windows 10 1809.

Содержание:

  • Установка клиента OpenSSH в Windows 10
  • Как использовать SSH клиенте в Windows 10?
  • SCP: копирование файлов из/в Windows через SSH

Установка клиента OpenSSH в Windows 10

Клиент OpenSSH входит в состав Features on Demand Windows 10 (как и RSAT). Клиент SSH установлен по умолчанию в Windows Server 2019 и Windows 10 1809 и более новых билдах.

Проверьте, что SSH клиент установлен:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Client*'

'OpenSSH.Client установка в windows 10

В нашем примере клиент OpenSSH установлен (статус: State: Installed).

Если SSH клиент отсутствует (State: Not Present), его можно установить:

  • С помощью команды PowerShell:
    Add-WindowsCapability -Online -Name OpenSSH.Client*
  • С помощью DISM:
    dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0
  • Через Параметры -> Приложения -> Дополнительные возможности -> Добавить компонент. Найдите в списке Клиент OpenSSH и нажмите кнопку Установить.

клиент openssh установить компонент

]Бинарные файлы OpenSSH находятся в каталоге c:\windows\system32\OpenSSH\.

  • ssh.exe – это исполняемый файл клиента SSH;
  • scp.exe – утилита для копирования файлов в SSH сессии;
  • ssh-keygen.exe – утилита для генерации ключей аутентификации;
  • ssh-agent.exe – используется для управления ключами;
  • ssh-add.exe – добавление ключа в базу ssh-агента.

исполняемые файлы OpenSSH

Вы можете установить OpenSSH и в предыдущих версиях Windows – просто скачайте и установите Win32-OpenSSH с GitHub (есть пример в статье “Настройка SSH FTP в Windows”).

Как использовать SSH клиенте в Windows 10?

Чтобы запустить SSH клиент, запустите командную строку
PowerShell
или
cmd.exe
. Выведите доступные параметры и синтаксис утилиты ssh.exe, набрав команду:

ssh

usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
[-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
destination [command]

параметры ssh клиента в windows

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

ssh username@host

Если SSH сервер запущен на нестандартном порту, отличном от TCP/22, можно указать номер порта:

ssh username@host -p port

Например, чтобы подключиться к Linux хосту с IP адресом 192.168.1.202 под root, выполните:

ssh [email protected]

При первом подключении появится запрос на добавление ключа хоста в доверенные, наберите yes -> Enter (при этом отпечаток ключа хоста добавляется в файл C:\Users\username\.ssh\known_hosts).

Затем появится запрос пароля указанной учетной записи, укажите пароль root, после чего должна открытся консоль удаленного Linux сервера (в моем примере на удаленном сервере установлен CentOS 8).

подключение из windows 10 в linux с помощью встроенного ssh клиента

С помощью SSH вы можете подключаться не только к *Nix подобным ОС, но и к Windows. В одной из предыдущих статей мы показали, как настроить OpenSSH сервер на Windows 10 и подключиться к нему с другого компьютера Windows с помощью SSH клиента.

Если вы используете SSH аутентификацию по RSA ключам (см. пример с настройкой SSH аутентификации по ключам в Windows), вы можете указать путь к файлу с закрытым ключом в клиенте SSH так:

ssh [email protected] -i "C:\Users\username\.ssh\id_rsa"

Также вы можете добавить ваш закрытый ключ в SSH-Agent. Сначала нужно включить службу ssh-agent и настроить ее автозапуск:

set-service ssh-agent StartupType ‘Automatic’
Start-Service ssh-agent

Добавим ваш закрытый ключ в базу ssh-agent:

ssh-add "C:\Users\username\.ssh\id_rsa"

Теперь вы можете подключиться к серверу по SSH без указания пути к RSA ключу, он будет использоваться автоматически. Пароль для подключения не запрашивается (если только вы не защитили ваш RSA ключ отдельным паролем):

ssh [email protected]

Еще несколько полезных аргументов SSH:

  • -C
    – сжимать трафик между клиентом и сервером (полезно на медленных и нестабильных подключениях);
  • -v
    – вывод подробной информации обо всех действия клиента ssh;
  • -R
    /
    -L
    – можно использовать для проброса портов через SSH туннель.

SCP: копирование файлов из/в Windows через SSH

С помощью утилиты scp.exe, которая входит в состав пакета клиента SSH, вы можете скопировать файл с вашего компьютера на SSH сервер:

scp.exe "E:\ISO\CentOS-8.1.1911-x86_64.iso" [email protected]:/home

scp.exe копирование файлов через ssh

Можно рекурсивно скопировать все содержимое каталога:

scp -r E:\ISO\ [email protected]:/home

И наоборот, вы можете скопировать файл с удаленного сервера на ваш компьютер:

scp.exe [email protected]:/home/CentOS-8.1.1911-x86_64.iso e:\tmp

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

Итак, теперь вы можете прямо из Windows 10 подключаться к SSH серверам, копировать файлы с помощью scp без установки сторонних приложений и утилит.

Сегодня все чаще в работе используются серверы с установленной операционной системой семейства Linux. Для возможности удаленного доступа используется протокол прикладного уровня под названием SSH. В данной статье мы рассмотрим использование протокола SSH для подключения к удаленным Linux-серверам, а также настройку некоторых параметров с целью улучшения безопасности.

Подключение по SSH можно использовать для абсолютно любого дистрибутива, так как протокол SSH используется по умолчанию практически во всех современных дистрибутивах Unix и Linux. 

В качестве примера вся конфигурация SSH, которая будет описана в данной статье, использовалась в дистрибутиве Ubuntu версии 22.04. Однако ее без проблем можно использовать в любых других дистрибутивах, включая Debian, CentOS, Astra Linux и т.д.   

cloud

Для подключения к серверам на Linux по протоколу SSH существует большое количество клиентских программ.

Среди самых известных программ для Windows можно выделить PuTTY, Bitvise SSH Client, SuperPuTTY, mRemoteNG, MobaXterm.

На macOS можно воспользоваться программой Termius или стандартной утилитой SSH, используя терминал.

Также можно использовать стандартный SSH-клиент (OpenSSH), который вызывается через командную строку (cmd) и присутствует в ОС семейства Windows: Windows 10, Windows 11 и Windows Server 2019. 

Установка SSH на сервер

В большинстве случаев SSH уже предустановлен на сервере, и вы сразу сможете подключиться. Если же пакет SSH по каким-то причинам не установлен, то его необходимо установить при помощи одной из следующих команд (все команды представленные ниже необходимо выполнять от имени пользователя root или от обычного пользователя, но с правами sudo).

APT

Для дистрибутивов на основе APT (Ubuntu, Debian, Linux Mint, Kali Linux, Astra Linux и другие) используйте команду:

apt -y install openssh-server

RPM

Для дистрибутивов на основе RPM (CentOS, Fedora, Red Hat Enterprise Linux, ALT Linux и другие) необходимо выполнить одну из команд ниже:

Для пакетного менеджера YUM:

yum -y install openssh-server

Для пакетного менеджера DNF:

dnf -y install openssh-server

Pacman

Для дистрибутивов на основе Pacman (Arch Linux, ArchLabs, Manjaro и другие) необходимо выполнить команду:

pacman -S openssh

Вместе с пакетом openssh-server также автоматически устанавливается пакет openssh-client, который представляет собой консольную утилиту SSH для подключения к удаленным серверам. 

Синтаксис команды SSH

Стандартный синтаксис команды SSH выглядит следующим образом:

ssh <имя_пользователя@IP_адрес_или_доменное_имя_удаленного_хоста>

Например:

ssh alex@80.242.57.93

По умолчанию подключение происходит по 22 порту. Если же порт SSH сервера другой, то он указывается при помощи опции -p:

ssh alex@80.242.57.93 -p 2222

Конфигурационный файл SSH-сервера

Конфигурационный файл, который использует SSH-сервер, называется sshd_config и располагается в директории /etc/ssh. Не путайте файл SSH-сервера с файлом SSH-клиента — ssh_config. Далее в статье будет использоваться только файл сервера — sshd_config.

Подключение по SSH при помощи пароля

По умолчанию подключение по протоколу SSH осуществляется с помощью пароля при условии, что на этапе создания сервера не был добавлен SSH-ключ для подключения (о ключах для SSH и об их применении будет рассказано в следующей главе). В большинстве дистрибутивов Linux/Unix в конфигурации сервера SSH включена PAM-аутентификация. Это означает, что пользователь, присутствующий в операционной системе, может воспользоваться своими данными (логин и пароль) для входа по SSH. Данное условие работает, если у пользователя не используются опции nologin и noshell, что можно проверить можно посмотреть в файле /etc/passwd, и ему разрешен вход по SSH (будет показано далее в статье).

Для того чтобы подключиться по SSH при помощи пароля, достаточно знать адрес необходимого сервера, а также логин и пароль пользователя. Например:

ssh alex@80.242.57.93

Image2

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

Если вы подключаетесь к серверу в первый раз, то увидите сообщение от так называемого «отпечатка пальцев» (fingerprint):

Image15

Чтобы войти на сервер, необходимо ввести yes

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

Использование паролей не является безопасным методом подключения, так как пароль можно попытаться подобрать. Наиболее безопасным методом аутентификации является использование SSH-ключей. О них речь пойдет в следующем разделе.  

Подключение по SSH при помощи ключей

Более распространенным и более безопасным способом вместо использования паролей являются SSH-ключи.

В работе используются два типа ключей: открытый (public) и закрытый (private). Открытый ключ используется для шифрования и является публичным — если кто-то вдруг завладеет вашим открытым ключом, то ничего критичного не произойдет. В свою очередь закрытый ключ используется для расшифровки. Закрытый ключ должен храниться только у вас и не в коем случае не быть доступным для третьих лиц. Для использования ключей сначала их необходимо сгенерировать. Для генерации используется команда:

ssh-keygen

Для начала команда предложит вам выбрать директорию, в которую будут сохранены открытый и закрытый ключи. По умолчанию ключи хранятся в скрытой (символ точки) директории .ssh, которая в свою очередь будет создана в домашней директории того пользователя, из-под которого запущена команда ssh-keygen. В данном примере ключи будут сохранены в домашней директории пользователя alex а именно в /home/alex/.ssh. Также вы можете указать другой путь и директорию куда будут сохранены ключи. Чтобы оставить путь по умолчанию, достаточно нажать на клавишу Enter:

Image4

Далее программа предложит задать passphrase — пароль для ключа. Это обеспечит дополнительный уровень защиты. Если кто-то получит доступ к вашему ключу, то ему придется подбирать еще и пароль. Однако стоит заметить, что при использовании passphrase вам придется вводить ее каждый раз при новом подключении по аналогии с использованием паролей. Passphrase можно не использовать. Для этого достаточно при появлении фраз Enter passphrase (empty for no passphrase) и Enter same passphrase again нажать на клавишу Enter:

Image14

После этого ssh-keygen сообщит о том что ключи сгенерированы и сохранены в ранее указанной директории:

Image12

Проверим содержимое директории .ssh (/home/alex/.ssh):

Image9

Где:

  • id_rsa — закрытый ключ
  • id_rsa.pub — открытый ключ

Перед тем как подключаться к нужному хосту, необходимо скопировать открытый ключ на этот удаленный хост. Для этого в комплекте с OpenSSH поставляется утилита для копирования открытых ключей на удаленные серверы — ssh-copy-id. Синтаксис у команды следующий:

ssh-copy-id -i <полный путь до файла открытого ключа- id_rsa.pub> имя_пользователя_на_удаленном_сервере@IP_адрес_или_доменное_имя

Предположим, нам необходимо подключиться к серверу с IP адресом 82.97.250.52 без пароля, только при помощи ключа. Для этого копируем ранее сгенерированный ключ на хост 82.97.250.52:

ssh-copy-id -i /home/alex/.ssh/id_rsa.pub alex@82.97.250.52

Так как мы впервые осуществляем подключение, то нам необходимо ввести yes:

Image1

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

Image5

После этого ключ будет добавлен:

Image10

Теперь можно попробовать зайти на удаленный сервер:

ssh alex@82.97.250.52

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

На удаленном хосте переданный открытый ключ был записан в файл authorized_keys, который находится в скрытой директории .ssh в домашней директории того пользователя, из-под которого осуществлялось подключение:

Image7

Запрет на подключение при помощи пароля

Так как использование паролей при подключении по SSH не является безопасным, то рекомендуется отключить данный метод аутентификации и оставить только вход по ключам. 

Для этого откроем на редактирование конфигурационный файл SSH-сервера (sshd_config) при помощи любого текстового редактора:

nano /etc/ssh/sshd_config

Далее необходимо найти параметр PasswordAuthentication и изменить значение на no:

PasswordAuthentication no

После этого сохраните изменения, выйдите из файла и перезапустите демон SSH-сервера при помощи команды:

systemctl restart ssh

Будьте предельно осторожны при выключении аутентификации по паролю, не убедившись перед этим, что аутентификация по ключам корректно работает. Если вход по ключам не будет работать, а аутентификация по паролю будет выключена — вы не сможете попасть на сервер при помощи SSH. Для решения данной проблемы вы можете использовать веб-консоль которая находится в разделе «Консоль» в панели управления сервера:

Image3

Авторизуйтесь под необходимой учетной записью, далее верните значение параметра PasswordAuthentication в yes и перезапустите демон SSH.

Смена стандартного порта SSH

По умолчанию сервер SSH работает по 22 порту. Порт можно изменить. Для этого в файле sshd_config найдите строку Port. Раскомментируйте при необходимости (удалите символ решетки #) и задайте любой порт, который не занят на вашем сервере, в диапазоне от 0 до 65536 (кроме портов 0-1023, так как данный диапазон зарезервирован для популярных приложений).

После этого сохраните изменения, выйдите из файла и перезапустите демон SSH-сервера при помощи команды:

systemctl restart ssh

Теперь при подключении используйте опцию -p, в которой будет задан новый порт, например:

ssh alex@82.97.250.52 -p 2224

Запрет на подключение по SSH пользователю root

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

Для этого в файле sshd_config найдите строку PermitRootLogin и задайте ей значение no:

PermitRootLogin no

После этого сохраните изменения, выйдите из файла и перезапустите демон SSH-сервера при помощи команды:

systemctl restart ssh

Теперь при попытке входа от имени root-пользователя будет отображаться ошибка: Permission denied, please try again.

Image6

Разрешение/запрет на подключение по SSH определенным пользователям

Помимо отключения разрешения на вход для root-пользователя, вы также можете разрешать или запрещать подключение только для определенных пользователей. Для этого в конфигурационном файле sshd_config используются параметры AllowUsers и DenyUsers:

  • AllowUsers разрешает определённым пользователям подключение по SSH. Разрешить доступ можно как одному пользователю, так и нескольким сразу, для этого их необходимо перечислить через пробел. Предполагается, что пользователи, которым разрешено подключение, уже созданы в операционной системе.
  • DenyUsers запрещает определённым пользователям подключение по SSH. Запретить доступ можно как одному пользователю, так и нескольким сразу, для этого их необходимо перечислить через пробел. Предполагается, что пользователи которым запрещено подключение, уже созданы в операционной системе.

Например, разрешим доступ только для пользователей test и admin:

AllowUsers test admin

И запретим доступ для пользователей nginx и websrv:

DenyUsers nginx websrv

Также разрешать и запрещать доступ можно и для групп:

AllowGroups www
DenyGroups db

После этого сохраните изменения, выйдите из файла и перезапустите демон SSH-сервера при помощи команды:

systemctl restart ssh

Теперь пользователи, которым запрещен доступ, при попытке входа будут получать ошибку Permission denied, please try again.

Заключение

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

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

Проверка службы SSH на сервере

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

Например, у меня VDS на Timeweb. Чтобы попасть в консоль, я авторизуюсь по логину и паролю, выданному хостером, выбираю свой сервер в списке VDS и перехожу на вкладку «Консоль». 

Вход в консоль

Чтобы пользоваться консолью, нужно авторизоваться. Логин и пароль для доступа к серверу хостер присылает в письме. Сначала нужно ввести логин и нажать на клавишу Enter. Появится строка Password. В ней необходимо ввести пароль и снова нажать на клавишу Enter.

Важно: в целях безопасности при вводе пароля на экране не отображаются никакие символы, даже привычные звездочки. 

После авторизации в консоли можно проверить, запущена ли служба SSH на сервере.

  1. Выполните команду systemctl status sshd.
  2. Обратите внимание на строчку Active. В ней должна быть выделенная зеленым запись active (running). Это состояние говорит о том, что служба запущена.

Служба SSH работает

Если служба не активна, добавьте ее самостоятельно. Выполните команду sudo apt install openssh-server и подтвердите установку пакетов.

Кроме того, для подключения вам может понадобиться настройка брандмауэра. Чтобы межсетевой экран не блокировал входящие соединения, можно на время отключить его командой sudo ufw disable.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться


Использование пароля

Начнем с инструкции о том, как подключиться к удаленному серверу через SSH по логину и паролю. Это самый простой способ. Хостер предоставляет вам IP-адрес, логин и пароль. Этого достаточно для того, чтобы установить соединение с удаленным сервером.

Подключение на Windows

Моя основная система — Windows. Раньше для подключения к серверу через SSH я пользовался сторонней утилитой PuTTY, потому что в операционной системе не было встроенного компонента. В «десятке» он появился, так что теперь можно подключаться к SSH через командную строку (cmd).

Чтобы включить встроенный в систему OpenSSH:

  1. Откройте «Параметры» (Win + I) и перейдите в раздел «Приложения».
  2. Выберите опцию «Управление дополнительными компонентами».
  3. Нажмите «Добавить компонент».
  4. Выберите в списке OpenSSH Client и нажмите «Установить».
  5. После завершения установки перезагрузите систему.

Клиент OpenSSH на Windows

Теперь разберемся, как подключиться к SSH через cmd. Запустите командную строку и выполните запрос вида ssh root@185.104.114.90.

Значение root — логин для подключения, вы получили его в письме при создании сервера. 185.104.114.90 — IP-адрес сервера. Его можно посмотреть в панели управления сервером или в том же письме, которое прислал хостер. У команды может быть также дополнительный параметр -p, после которого прописывается номер порта. По умолчанию используется порт 22. Если у вас настроен другой порт, нужно явно его указать, — например, полный адрес может выглядеть так: ssh root@185.104.114.90 -p 150.

После выполнения команды клиент SSH предложит добавить устройство в список известных. Введите в командной строке yes и нажмите на Enter. Затем укажите пароль для доступа к серверу. На этом подключение к серверу через SSH завершено — теперь все команды будут выполняться на удаленной машине, к которой вы подключились.

На версиях младше Windows 10 1809 нет встроенной поддержки протокола OpenSSH. В таком случае понадобится сторонняя утилита. Смотрим, как через PuTTY подключиться по SSH:

  1. Запустите PuTTY.
  2. На вкладке Session укажите Host Name (IP-адрес сервера), Port (по умолчанию 22, но если вы в конфигурации сервера указали другой порт, нужно задать его номер).
  3. Убедитесь, что тип соединения установлен SSH.
  4. Нажмите на кнопку Open, чтобы подключиться.

SSH в программе PuTTY

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

Подключение на Linux и macOS

Теперь посмотрим, как подключиться по SSH через терминал на Linux. Для этого не требуется установка дополнительных компонентов, все работает «из коробки».

  1. Запустите терминал. Обычно для этого используется сочетание клавиш Ctrl+Alt+T. Найти терминал также можно по пути «Главное меню» — «Приложения» — «Система».
  2. Выполните команду для подключения. Синтаксис такой же, как на Windows, — ssh root@185.104.114.90. Если порт не стандартный, то нужно явно его указать: например, ssh root@185.104.114.90 -p 150. Вместо root вы указываете свое имя пользователя, а вместо 185.104.114.90 — IP-адрес своего сервера.
  3. Если хост и порт указаны верно, на следующем шаге появится запрос на ввод пароля. При первом подключении также будет предложение добавить новое устройство в список известных. Для этого введите yes и нажмите на клавишу Enter.

На этом подключение завершено. Теперь все команды, которые вы вводите в терминале, будут выполняться на удаленной машине.

Если IP-адрес или порт указаны неверно, то на экране появится сообщение об ошибке — Connection Refused. Это может также говорить о том, что доступ запрещен брандмауэром на удаленном сервере (если вы его не отключили). Чтобы разрешить подключение через SSH:

  • на сервере с Ubuntu/Debian выполните команду $ sudo ufw allow 22/tcp;
  • на сервере CentOS/Fedora выполните команду $ firewall-cmd —permanent —zone=public —add-port=22/tcp.

Цифра 22 в синтаксисе — номер порта. Если вы используете другой порт, то укажите его явно.

Если вы знаете как подключиться через SSH на Linux, то справитесь с этой задачей и на macOS. В операционной системе Apple тоже есть встроенный терминал. Синтаксис команды для подключения не меняется: ssh root@185.104.114.90, где root — ваш логин, а 185.104.114.90 — IP-адрес сервера, с которым вы устанавливаете соединение. 

Читайте также

Использование ключа

Ввод пароля для подключения через SSH — раздражающая процедура. У меня почти никогда не получалось ввести его правильно с первого раза. Поэтому я начал искать информацию о том, как подключиться к серверу через SSH без пароля. Простое и безопасное решение — использование ключа. Почему это безопаснее? Потому что пароль можно подобрать. Чтобы исключить такую вероятность, многие пользователи выбирают авторизацию с помощью ключа. 

Суть процедуры в формировании двух ключей: публичного и приватного. Первый копируется на сервер, а второй остается на компьютере пользователя и не передается по сети. В таком случае пароль при подключении не требуется. Когда вы подключаетесь к серверу через SSH, публичный ключ взаимодействует с приватным и открывает доступ к удаленному управлению.

Генерирование ключа и подключение на Windows

Для удобства используем программу PuTTy. Вместе с ней устанавливается утилита PuTTYgen — в ней можно сгенерировать публичный и приватный ключи.

  1. Запустите программу PuTTYgen.
  2. Нажмите на кнопку Gengerate.
  3. Водите курсором мышки по рабочему столу, чтобы сгенерировать случайные значения ключей.
    Создание ключей в PuTTY

  4. Нажмите на кнопку Save private key, чтобы сохранить на жестком диске приватный ключ. Место хранения может быть любым — его нужно указать в параметрах PuTTY. Сделаем это позже. 
  5. Скопируйте публичный ключ в буфер обмена (Ctrl + C) и закройте генератор ключей.

Ключи в PuTTY

Теперь нужно перенести публичный ключ на сервер. Запустите программу PuTTY и подключитесь к серверу с помощью пароля. Затем последовательно введите следующие команды:

mkdir ~/.ssh

chmod 0700 ~/.ssh

touch ~/.ssh/authorized_keys

chmod 0644 ~/.ssh/authorized_keys

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

Следующий шаг — вставка публичного ключа из буфера обмена в файл authorized_keys. Для этого используется команда cat > .ssh/authorized_keys. После ввода команды щелкните по окну терминала правой кнопкой, чтобы вставить скопированный ранее публичный ключ. Для завершения ввода нажмите на сочетание клавиш Ctrl+D.

Вернитесь в настройки PuTTY. Перейдите в раздел Connection — SSH — Auth. Нажмите на кнопку Browse и укажите путь к приватному ключу, который вы ранее сохранили на жестком диске.

Приватный ключ в PuTTY

Теперь для подключения к серверу через SSH пароль не нужен — достаточно указать логин и IP-адрес сервера.

Генерирование ключа и подключение на Linux и macOS

Теперь посмотрим, как подключиться через SSH ключи на Linux и macOS. 

  1. Запустите терминал на локальном компьютере.
  2. Выполните команду ssh-keygen, чтобы сгенерировать ключи.
  3. Нажмите на Enter, чтобы сохранить ключи.

Генератор предложит также задать кодовую фразу для ключа. Это дополнительная мера безопасности: если кто-то получит доступ к вашей локальной машине, то все равно не сможет подключиться к серверу через SSH. Минус один — вам тоже придется постоянно вводить ключевую фразу. Можно отказаться от этой меры защиты, просто нажав на клавишу Enter. 

На этом процедура создания ключей завершена. Файлы d_rsa (приватный ключ) и id_rsa.pub (публичный ключ) хранятся в папке ~/.ssh/.  Осталось скопировать открытую часть ключа на сервер.

  1. Вернитесь в терминал.
  2. Выполните команду ssh-copy-id root@185.104.114.90, где root — логин для подключения к серверу по SSH, а 185.104.114.90 — IP-адрес или хост сервера.

После выполнения этой команды публичный ключ будет скопирован на сервер. Теперь вы можете подключаться к удаленной машине с помощью логина и IP-адреса — например, ssh root@185.104.114.90. Ключи будут сопоставляться автоматически.

Отключение запроса пароля

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

  1. Подключитесь к удаленному серверу.
  2. Выполните команду sudo nano /etc/ssh/sshd_config. Файл sshd_config откроется во встроенном текстовом редакторе. 
  3. Найдите строку PasswordAuthentication yes и измените ее на PasswordAuthentication no.
  4. Сохраните изменения и перезапустите службу SSH командой sudo service ssh restart.

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

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

  • Secure Shell (SHH) для компьютеров на базе Linux
  • Протокол удаленного рабочего стола (RDP — Remote Desktop Protocol) для компьютеров под управлением Windows

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

Предварительные требования

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

  • Удаленный компьютер должен быть постоянно включен и быть подключенным к сети
  • Клиентские и серверные приложения должны быть установлены и активированы
  • Вам нужно знать IP-адрес или имя удаленного компьютера, к которому вы хотите подключиться
  • У вас должны быть необходимые полномочия для доступа к удаленному компьютеру
  • Настройки межсетевого экрана должны разрешать удаленное подключение

Что такое SHH?

Secure Shell, иногда называемый Secure Socket Shell, — это протокол, который позволяет безопасно подключаться к удаленному компьютеру или серверу при помощи текстового интерфейса.

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

Чаще всего этот протокол используют системные и сетевые администраторы, а также все, кому необходимо удаленно управлять компьютером и при этом иметь высокий уровень защиты.


Как работает SSH?

Для того, чтобы установить SSH-соединение, необходимо иметь два компонента: клиентскую часть и соответствующий компонент на стороне сервера. Клиентская часть, или клиент, SSH – это приложение, которое устанавливается на компьютер, который вы будете использовать для подключения к другому компьютеру или серверу. Клиент, чтобы инициировать соединение, использует предоставленную информацию об удаленном хосте и устанавливает зашифрованное соединение, если учетные данные были проверены.

На стороне сервера есть компонент, называемый демоном SSH (SSH daemon — sshd). Он постоянно прослушивает определенный порт TCP/IP для возможных клиентских запросов на подключение. Как только клиент инициирует соединение, демон SSH ответит сообщением о программном обеспечении и версиях протокола, которые он поддерживает, и они обменяются своими идентификационными данными.

Версия протокола SSH по умолчанию для связи сервера SSH и клиента SSH – 2.


Как установить SSH-соединение

Так как для установки SSH-соединения требуются как клиентский, так и серверный компоненты, необходимо убедиться, то они установлены на локальном и удаленном компьютерах соответственно. OpenSSH – это инструмент SSH с открытым исходным кодом, который широко используется для дистрибутивов Linux. Установка OpenSSH относительно проста. Для этого требуется доступ к терминалу на сервере и к компьютеру, который вы используете для подключения. Отметим, что в Ubuntu SSH-сервер по умолчанию не установлен.

Как установить клиентскую часть OpenSSH

Прежде чем устанавливать клиента SSH, убедитесь в том, что он еще не установлен. Во многих дистрибутивах Linux он уже есть. Для компьютеров с Windows вы можете установить PuTTY или любой другой клиент по вашему выбору, чтобы получить доступ к серверу.

Для того, чтобы проверить есть ли клиент в вашей системе на базе Linux, вам необходимо сделать следующее:

  1. Загрузить терминал SSH. Вы можете выполнить поиск по слову «терминал» или нажать CTRL+ALT+T на клавиатуре.
  2. Введите ssh и нажмите Enter.
  3. Если клиент установлен, то вы получите вот такой ответ:
username@host:~$ ssh

usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
[user@]hostname [command]

username@host:~$

Это означает, что вы готовы удаленно подключитьсяк физическому компьютеру или виртуальной машине. В противном случае вам придется установить клиентскую часть OpenSSH:

  1. Выполните следующую команду, чтобы установить клиент OpenSSH на свой компьютер: sudo apt-get install openssh-client
  2. Введите пароль привилегированного пользователя по запросу
  3. Нажмите Enter, чтобы завершить установку.

Теперь вы можете подключиться по SSH к любому компьютеру с установленным серверным приложением при условии, что у вас есть необходимые привилегии для получения доступа, а также имя хоста или IP-адрес.

Как установить серверную часть OpenSSH

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

Если вы хотите сначала проверить, есть ли сервер OpenSSH в системе Ubuntu удаленного компьютера, который будет принимать SSH-подключения, вы можете попробовать подключиться к локальному хосту:

  1. Откройте терминал на сервере. Вы можете выполнить поиск по слову «терминал» или нажать CTRL+ALT+T на клавиатуре.
  2. Введите ssh localhost и нажмите Enter.
  3. Для систем, в которых не установлен SSH-сервер, ответ будет выглядеть вот так:
username@host:~$ ssh localhost
ssh: connect to host localhost port 22: Connection refused username@host:~$    

Если это так, что вам необходимо устрановить сервер OpenSSH. Не закрывайте терминал и:

  1. Выполните следующую команду, чтобы установить сервер SSH:sudo apt-get install openssh-server ii
  2. Введите пароль привилегированного пользователя по запросу.
  3. Нажмите Enter или введите Y, чтобы продолжить установку после запроса на свободное место на диске.

Необходимые вспомогательные файлы будут установлены, а затем вы сможете проверить, работает ли SSH-сервера на компьютере, введя следующую команду:

sudo service ssh status

Ответ в терминале должен выглядеть примерно так, если служба SSH работает правильно:

username@host:-$ sudo service ssh status
• ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab
Active: active (running) since Fr 2018-03-12 10:53:44 CET; 1min 22s ago Process: 1174 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCES

Main PID: 3165 (sshd)

Еще один способ проверить, правильно ли установлен сервер OpenSSH и будет ли он принимать подключения, — это попробовать снова запустить команду ssh localhost в командной строке терминала. Ответ при первом запуске команды будет примерно следующий:

username@host:~$ ssh localhost

The authenticity of host 'localhost (127.0.0.1)' can't be established. ECDSA key fingerprint is SHA256:9jqmhko9Yo1EQAS1QeNy9xKceHFG5F8W6kp7EX9U3Rs. Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.

username@host:~$    

Введите yes или y, чтобы продолжить.

Поздравляем! Вы настроили свой сервер для приема запросов на SSH- подключение от другого компьютера при помощи клиента SSH.

Теперь вы можете редактировать файл конфигурации демона SSH. Например, вы можете изменить порт по умолчанию для SSH-соединений. Для этого в командной строке терминала выполните эту команду:

sudo nano /etc/ssh/sshd_config

Файл конфигурации откроется в редакторе, который вы выберете. В данном случае мы использовали Nano. Если вам тоже нужно установить Nano, выполните эту команду:

sudo apt-get install nano

Обратите внимание, что службу SSH необходимо перезапускать каждый раз, когда вы вносите какие-либо изменения в файл sshd_config. Это можно сделать, выполнив эту команду:

sudo service ssh restart

Как подключиться через SSH

Теперь, когда у вас есть клиент и сервер OpenSSH, установленные на обоих компьютерах, вы можете установить безопасное удаленное соединение со своими серверами. Для этого:

  1. Откройте SSH-терминал на своем компьютере и выполните следующую команду: ssh your_username@host_ip_address. Если имя пользователя на вашем локальном компьютере совпадает с именем на сервере, к которому вы пытаетесь подключиться, вы можете просто ввести: ssh host_ip_address и нажать Enter.
  2. Введите свой пароль и нажмите Enter. Обратите внимание, что вы не получите никакой обратной связи на экране во время набора текста. Если вы вставляете свой пароль, убедитесь, что он хранится в безопасном месте, а не в текстовом файле.
  3. Когда вы подключаетесь к серверу в первый раз, он спросит вас, хотите ли вы продолжить подключение. Просто введите yes и нажмите Enter. Это сообщение появляется только один раз (в первый раз), так как удаленный сервер еще не идентифицирован на вашем локальном компьютере.
  4. Теперь отпечаток ключа ECDSA добавлен, и вы подключены к удаленному серверу.

Если компьютер, к которому вы пытаетесь удаленно подключиться, находится в той же сети, что и локальный компьюетр, то лучше использовать частный IP-адрес вместо общедоступного IP-адреса. В противном случае вам придется использовать только общедоступный IP-адрес. Кроме того, убедитесь, что вы знаете правильный TCP-порт, который OpenSSH прослушивает для запросов на подключение, и что параметры переадресации портов верны. Порт по умолчанию — 22, если никто не менял конфигурацию в файле sshd_config. Вы также можете просто добавить номер порта после IP-адреса хоста.

Вот пример запроса на подключение с использованием клиента OpenSSH с указанием номера порта:

username@machine:~$ ssh phoenixnap@185.52.53.222 –p7654 phoenixnap@185.52.53.222’s password:

The authenticity of host '185.52.53.222 (185.52.53.222)' can't be established. ECDSA key fingerprint is SHA256:9lyrpzo5Yo1EQAS2QeHy9xKceHFH8F8W6kp7EX2O3Ps. Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ' 185.52.53.222' (ECDSA) to the list of known hosts. 

username@host:~$    

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

  • IP-адрес удаленного компьютера указан верно
  • Порт, который прослушивает демон SSH, не заблокирован межсетевым экраном и правильно переадресовывается
  • Ваше имя пользователя и пароль указаны верно
  • Программное обеспечение SSH установлено верно

Дальнейшие действия по SSH

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

Вот некоторые из предложений по усилению безопасности SSH путем редактирования файла конфигурации sshd:

  • Измените TCP-порт по умолчанию, который прослушивает демон SSH. Измените его с 22 на вариант побольше, например, 24596. Не используйте номер порта, который легко угадать, например, 222, 2222 или 22222.
  • Используйте пары ключей SSH для аутентификации при входе в SSH без пароля. Они и безопаснее, и позволяют входить в систему без необходимости использовать пароль. Это быстрее и удобнее.
  • Отключите вход в систему на основе пароля на вашем сервере. Если ваш пароль будет взломан, это исключит возможность его использования для входа на ваши серверы. Прежде чем отключить возможность входа с использованием паролей, важно убедиться, что аутентификация с использованием пар ключей работает корректно.
  • Отключите root-доступ к вашему серверу и используйте обычную учетную запись с помощью команды su – команды для переключения на root-пользователя.

Вы также можете использовать TCP Wrappers для ограничения доступа к определенным IP-адресам или именам хостов. Настройте, какой хост может подключаться с помощью TCP Wrappers, отредактировав файлы /etc/hosts.allow и etc/hosts.deny.

Обратите внимание, что разрешенные хосты определяются через запрещенные хосты. Например, чтобы разрешить SSH-доступ к одному хосту, вам сначала нужно запретить все хосты, добавив следующие две строки в файл etc/hosts.deny:

sshd : ALL
ALL : ALL    

Затем в файле etc/hosts.allow вам необходимо добавить строку с разрешенными хостами для службы SSH. Это может быть один IP-адрес, диапазон IP-адресов или имя хоста: sshd: 10.10.0.5, LOCAL.

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


VNC через SSH

Для пользователей, привыкших работать в графической среде рабочего стола с системой управления удаленным компьютером (VNC — Virtual Network Computing), есть возможность полностью зашифровать соединения с помощью туннелирования SSH. Чтобы туннелировать соединения VNC через SSH, вам нужно будет запустить эту команду в терминале на вашем компьютере с Linux или UNIX:

$ ssh -L 5901:localhost:5901 -N -f -l username hostname_or_IP

Вот разбор команды выше:

  • ssh: запускает клиентскую программу SSH на вашем локальном компьютере и обеспечивает безопасное подключение к серверу SSH на удаленном компьютере.
  • -L 5901:localhost:5901: указывает, что локальный порт для клиента на локальном компьютере должен быть переадресован на указанный хост и порт удаленного компьютера. В этом случае локальный порт 5901 на локальном клиенте перенаправляется на тот же порт удаленного сервера.
  • -N: указывает переслать порты, но не выполнять удаленную команду.
  • -f: отправляет SSH в фоновый режим после ввода пароля, непосредственно перед выполнением команды. Затем вы можете свободно использовать терминал для ввода команд на локальном компьютере.
  • -l username: введенное здесь имя пользователя будет использоваться для входа на указанный вами удаленный сервер.
  • hostname_or_IP: это удаленная система с сервером VNC. Примером IP-адреса может быть 172.16.0.5, а примером имени хоста может быть myserver.somedomain.com.

Вы также можете подключиться к удаленному серверу через SSH- туннель с компьютера с Windows, используя PuTTY. В окне конфигурации PuTTY выполните следующее:

PyTTY

  • Перейдите в Connections (Соединения) -> SSH -> Tunnels (Туннели)
  • В поле Source port (Порт источника) введите 5901
  • В поле Destination (Адресат) введите localhost:5901
  • Запустите сеанс SSH как обычно
  • Подключитесь к серверу с помощью клиента VNC по вашему выбору

Что такое RDP?

Протокол удаленного рабочего стола (RDP — Remote Desktop Protocol) — это протокол, разработанный Microsoft. Он используется для удаленного контроля и управления компьютерами с операционной системой Windows.

В отличие от Secure Shell, соединения, установленные с помощью RDP-клиента, предоставляют пользователю графический интерфейс, через который он может получить доступ к удаленному компьютеру и управлять им так же, как и своим локальным компьютером.

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

Но у всего есть своя цена. Если вы не используете виртуальную защищенную сеть (VPN — virtual private network), подключение через RDP будет гораздо менее безопасно, чем SSH, потому что вы напрямую подключаетесь к Интернету. Существует множество автоматизированных сценариев, которые постоянно ищут слабые места в вашем соединении, особенно это касается открытых портов, которые используют подключения к удаленному рабочему столу Windows. В этом случае настоятельно рекомендуется иметь сложные и надежные пароли и регулярно их менять. Это не делает соединения RDP более безопасными, но все же делает их менее уязвимыми.

Как работает протокол удаленного рабочего стола?

Подключение к удаленному рабочему столу Windows основано на довольно простой модели клиент-сервер с использованием протокола удаленного рабочего стола (RDP). После его включения серверная служба удаленного рабочего стола Windows начинает прослушивать запросы на подключение через порт 3389. Всякий раз, когда вы пытаетесь подключиться к серверу Windows, вам нужно будет указать действительное имя пользователя для учетной записи, которую вы используете для удаленного доступа. Получив доступ к серверу, вы сможете управлять приложениями, передавать файлы между двумя компьютерами и практически выполнять любые задачи, которые вы можете выполнять локально с соответствующей учетной записью.

Независимо от того, какая у вас версия операционной системы Windows, вы сможете установить безопасное удаленное подключение к другому компьютеру, поскольку клиент удаленного рабочего стола доступен по умолчанию. Тем не менее, удаленный доступ к компьютеру возможен только в том случае, если он работает под управлением Pro, Enterprise или Server версии операционной системы Windows. Таким образом, можно сделать вывод, что RDP-соединения возможны только между компьютерами с установленной на них ОС Windows.


Как установить RDP-соединение

Для установления подключения к удаленному рабочему столу с другим компьютером по сети необходимо включить службу сервера удаленного рабочего стола Windows. Клиент удаленного рабочего стола интегрирован в системы Windows, готов к работе по умолчанию и не требует специальной настройки, прежде чем вы сможете подключиться к другому компьютеру под управлением Windows. Однако прием подключений к удаленному рабочему столу с других компьютеров по умолчанию отключен во всех версиях ОС Windows.

Если вы хотите удаленно подключиться к серверу через Интернет, а не через локальную сеть, вам необходимо принять во внимание несколько вещей, прежде чем включать эту службу:

  • Переадресация порта. Если вы не используете VPN, то вам необходимо убедиться, что порты правильно переадресованы на IP-адрес удаленного хоста. Проверьте настройки маршрутизатора, чтобы узнать, направляется ли трафик TCP-порта по умолчанию для протокола удаленного рабочего стола (порт 3389) на IP-адрес сервера, с которым вы хотите установить подключение к удаленному рабочему столу. Обратите внимание, что в этом случае ваш сервер Windows напрямую подключен к Интернету и уязвим.
  • Использование VPN. Это гораздо более безопасный вариант подключения к удаленному рабочему столу. При создании виртуальной защищенной сети на клиентском компьютере вы сможете получить доступ ко всем службам, которые доступны только при использовании локального подключения.
  • Настройки межсетевого экрана. Убедитесь, что межсетевой экран, который вы используете для удаленного компьютера, не блокирует подключение к удаленному рабочему столу. Вам нужно открыть локальный порт для RDP, будь то номер порта по умолчанию или настраиваемый.

Подключение удаленного доступа в версиях Windows 7, 8, 10 и Windows Server

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

Шаг 1. Разрешите удаленные подключения

Перейдите в раздел информации о компьютере на том компьютере, на котором вы хотите разрешить удаленные подключения:

  1. Щелкните правой кнопкой мыши Computer (Мой компьютер) или This PC (Этот компьютер) в зависимости от версии ОС Windows.
  2. Щелкните Properties (Свойства).
  3. Нажмите Remote settings (Настройки удаленного доступа) в левой части окна.
  4. Щелкните Allow remote connections to this computer (Разрешить удаленные подключения к этому компьютеру). Это должно автоматически добавить исключение межсетевого экрана удаленного рабочего стола. Кроме того, вы можете снять флажок “Allow connections only from computers running Remote Desktop with Network Level Authentication (recommended)” («Разрешить подключения только с компьютеров, на которых запущен удаленный рабочий стол с проверкой подлинности на уровне сети (рекомендуется)») для дополнительной безопасности сеансов RDP.
    Allow remote connections to this computer

  5. Нажмите Apply (Применить), если вы хотите остаться на вкладке, или ОК, чтобы закрыть ее.
Шаг 2. Добавьте пользователей в список удаленных пользователей.

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

  1. На экране Remote Settings (Настройки удаленного доступа), показанном выше, щелкните Select Users (Выбрать пользователей)
  2. Нажмите Add (Добавить) в поле Remote Desktop Users (Пользователи удаленного рабочего стола).
  3. Появится окно Select users (Выбрать пользователей). Вы можете выбрать местоположение, которое хотите найти, нажав Locations (Местоположения).
  4. В поле Enter the Object Names to Select (Введите имена объектов для выбора) введите имя пользователя и нажмите Check Names (Проверить имена).
  5. Когда вы найдете совпадение, выберите учетную запись пользователя и нажмите OK.
  6. Закройте окно System Properties (Свойства системы), еще раз нажав кнопку ОК.

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

Как использовать клиентскую часть удаленного подключения к рабочему столу

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

Шаг 1: Запустите модуль подключения к рабочему столу

На локальном компьютере с ОС Windows найдите приложение Remote Deskrop Connection (Подключение к удаленному рабочему столу). Его можно найти несколькими способами:

  1. Для Windows 7 нажмите Start (Пуск) -> All Programs (Все программы), перейдите в папку Accessories (Стандартные) и нажмите Remote Desktop Connection (Подключение к удаленному рабочему столу). Для Windows 10 нажмите Start (Пуск) и найдите папку Windows Accessories (Стандартные для Windows), где вы также можете найти приложение Remote Desktop Connection (Подключение к удаленному рабочему столу).
  2. Нажмите Start (Пуск) и введите Remote Desktop Connection (Подключение к удаленному рабочему столу) в строке поиска. Вы получите результаты поиска, как только начнете печатать. Нажмите на приложение, когда оно появится в списке.
  3. Нажмите клавиши Windows + R на клавиатуре, чтобы открыть окно Run (Выполнить). Введите mstsc в поле Open (Открыть) и нажмите Enter, чтобы запустить клиент удаленного рабочего стола.
    mstsc

Шаг 2. Введите IP-адрес или имя удаленного хоста.

После запуска приложения Remote Desktop Connection (Подключение к удаленному рабочему столу) откроется окно, в котором вы можете ввести имя или IP-адрес удаленного компьютера, к которому вы хотите получить доступ.

В поле Computer (Компьютер) введите соответствующее имя или IP-адрес и нажмите Connect (Подключиться).

Connect

Примечание. Если порт прослушивания по умолчанию для подключения к удаленному рабочему столу (порт 3389) был изменен на удаленном узле на другое значение, вам нужно указать его после IP-адреса.Пример: 174.163.152.141:6200

В зависимости от ситуации вам нужно будет ввести частный или общедоступный IP-адрес удаленного хоста. Вот возможные сценарии:

  • Если клиентский компьютер и удаленный хост подключены к одной и той же локальной сети, вы будете использовать частный IP-адрес хоста для подключения к удаленному рабочему столу.
  • Если вы используете виртуальную защищенную сеть (VPN) на клиентском компьютере для доступа к удаленному хосту, вы будете использовать частный IP-адрес хоста для подключения к удаленному рабочему столу.
  • Если клиентский компьютер подключается к удаленному хосту из другой сети через Интернет без VPN, вы будете использовать общедоступный IP-адрес.
Как найти IP-адрес и имя хоста

Существует много способов найти имя, общедоступный или частный IP-адрес компьютера, на котором вы хотите настроить службу удаленного рабочего стола. Вот самые быстрые и простые способы:

Чтобы определить частный IP-адрес компьютера:

  1. Найдите CMD в меню «Пуск» (start) или нажмите Windows + R на клавиатуре, наберите на клавиатуре CMD и нажмите Enter, чтобы запустить командную строку.
  2. Введите ipconfig в командной строке и нажмите Enter.
  3. Вы увидите частный IP-адрес вашего компьютера в строке IPv4 Address.
    IPv4 Address

Чтобы определить общедоступный IP-адрес компьютера:

  • В веб-браузере перейдите на сайт google.com или воспользуйтесь его панелью поиска.
  • Введите what is my IP (какой у меня IP) или просто my IP (мой IP) и нажмите Enter.
  • В верхней части страницы Google покажет вам общедоступный IP-адрес, который использует ваш компьютер. Если это не работает для вашего региона, вы можете посетить первую веб-страницу в результатах поиска, и она покажет вам IP-адрес. Или можно узнать адрес на нашей страничке.

Чтобы найти имя компьютера:

  1. Щелкните правой кнопкой мыши Computer (Мой компьютер) или This PC (Этот компьютер), в зависимости от используемой версии ОС Windows.
  2. Нажмите Свойства
  3. Вы найдете свое полное имя компьютера в разделе Computer name, domain, and workgroup settings (Имя компьютера, домен и настройки рабочей группы).
Шаг 3. Ввод учетных данных RDP и завершение подключения

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

Ввод учетных данных

  1. Введите пароль для выбранного имени пользователя. При необходимости вы можете использовать другую учетную запись и указать другое имя пользователя и пароль.
  2. Нажмите OK, когда будете готовы, и вы получите предупреждение о сертификате безопасности.
  3. Нажмите Yes (Да), чтобы продолжить.

Примечание. На компьютере с ОС Windows одновременно может быть зарегистрирован только один пользователь. Если кто-то другой использует компьютер, к которому вы пытаетесь получить удаленный доступ, этот пользователь должен отключиться. В таких случаях появится предупреждающее сообщение о входе в систему.

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

Дальнейшие шаги по протоколу удаленного рабочего стола

При настройке удаленного сервера или компьютера для приема подключений к удаленному рабочему столу важно принять меры безопасности в отношении защиты RDP. Ваш сервер особенно уязвим, если вы обращаетесь к нему через Интернет.

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

  • Используйте встроенный VPN-сервер на вашем компьютере с Windows для дополнительной защиты вашего трафика. Это обеспечит более безопасный доступ к вашему серверу и службам Windows.
  • Установите шифрование клиентского соединения. По умолчанию для этого параметра установлено значение Not configured (Не настроено). Вы можете включить его и установить высокий уровень шифрования для всех взаимодействий между клиентами и серверами хоста сеансов удаленных рабочих столов. Мы не рекомендуем использовать настройку уровня шифрования Client Compatible (Совместимый с клиентом). Если оставить настройку уровня шифрования по умолчанию High (Высокий), принудительно будет использоваться надежное 128-битное шифрование для данных, отправляемых с клиента на сервер и наоборот. Вы можете изменить эту конфигурацию с помощью редактора локальной групповой политики.
  • Используйте двухфакторную аутентификацию с помощью сторонних инструментов.
  • Применяйте правила межсетевого экрана, чтобы ограничить доступ открытых портов RDP к Интернету, особенно если вы используете TCP-порт RDP 3389, установленный по умолчанию. В Windows есть встроенный межсетевой экран, к которому вы можете получить доступ из панели управления и дополнительно настроить его для ограничения трафика на определенные порты и IP-адреса

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


Заключение

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

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

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows reset netsh winsock reset
  • Realtek alc1150 драйвер windows 10
  • Как установить gulp на windows 7
  • Где номер на клавиатуре компьютера в windows
  • Как добавить папку исключения в защитник windows 10