Здесь мы рассмотрим пример того, как подключиться к удаленной виртуальной машине или серверу от СЕРВЕР МОЛЛ Cloud для управления ими, используя OpenSSH через PowerShell. В этом примере клиентская система управляется ОС Windows, а серверная система работает под управлением ОС Ubuntu 22.04. Для других дистрибутивов Linux порядок действий будет схожим, но процедуры установки OpenSSH и выделения полномочий пользователям, описанные в разделах “Установка SSH-сервера” и “Создание нового пользователя”, могут отличаться.
В большинстве наших образов дистрибутивов ОС на базе Linux уже установлен сервер OpenSSH. Если вы хотите подключиться к виртуальной машине или серверу с предустановленным сервером OpenSSH от имени пользователя netadmin (root), а не нового, созданного вами, пользователя, то шаги, приведенные в разделе “Действия на Сервере“, выполнять не требуется.
Предварительные условия
Требования к клиенту
- Клиентская система должна быть под управлением операционной системы Windows.
- На клиентской системе должен быть установлен PowerShell версии 5.1 и выше. О том, как установить Powershell, вы можете ознакомиться в инструкции “Установка PowerShell в Windows”.
Требования к серверу
- Серверная система должна управляться операционной системой на базе Linux.
- Серверная система должна работать на виртуальной машине или сервере СЕРВЕР МОЛЛ Cloud.
- На серверной системе должен быть доступен терминал Linux.
Порядок действий
I. Действия на Сервере
- Подключаемся к виртуальной машине или серверу.
Подключение осуществляем через консоль панели управления СЕРВЕР МОЛЛ Cloud, как описано в разделе “Подключение через консоль”. - Обновляем информацию об актуальных версиях доступных системе пакетов:
sudo apt update
- Устанавливаем OpenSSH для сервера:
sudo apt install openssh-server
Если вы хотите управлять удаленно от имени пользователя netadmin (root) сервера, то шаги 4-6 по созданию нового пользователя можно пропустить и перейти сразу к разделу “Действия на Клиенте”. - Создаём нового пользователя и домашний каталог для него:
useradd newuser1 -d /home/newuser1 -m
- Задаем пароль для нового пользователя:
passwd newuser1
На запрос:New password:
Придумываем пароль пользователя, вводим его и нажимаем кнопку Enter, затем повторяем ввод и снова нажимаем Enter. В процессе ввода пароль не будет отображаться на экране. - Добавляем нового пользователя в группу с привилегиями Sudo, если это нужно:
usermod -aG sudo newuser1
Серверная часть готова к подключению, переходим к клиентской.
II. Действия на Клиенте
- Запускаем Powershell от имени администратора.
- Определяем версию OpenSSH доступную системе:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'
- Устанавливаем OpenSSH для клиента:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Если в результате установки параметр RestartNeeded принял значение False, то OpenSSH Client готов к использованию без перезагрузки. В этом случае перейдите к пункту 5. - Перезагружаем устройство.
Перед перезагрузкой сохраните все несохраненные файлы, затем выполните команду:Restart-Computer
Устройство будет перезагружено, после чего OpenSSH Client будет готов к использованию. После перезагрузки необходимо снова запустить Powershell от имени администратора. - Создаём ключевую пару:
ssh-keygen
На запрос:PS C:\WINDOWS\system32> ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (C:\Users\current_user/.ssh/id_rsa):
Отвечаем нажатием клавиши Enter. Это будет означать, что расположение и имя ключевой пары будут установлены по умолчанию. Или можете ввести свой путь к ключу, тогда придется также указывать его при копировании ключа и при соединении с сервером.
На запрос:Enter passphrase (empty for no passphrase):
Придумываем и вводим парольную фразу, затем нажимаем Enter. Повторно вводим парольную фразу и снова нажимаем Enter. Если парольные фразы не соответствуют, то повторяем ввод. - Пересылаем публичный ключ на Сервер:
cat C:\Users\current_user.ssh\id_rsa.pub | ssh newuser1@203.0.113.12 "mkdir -p /home/newuser1/.ssh; cat >> /home/newuser1/.ssh/authorized_keys"
где:
C:\Users\current_user\.ssh\id_rsa.pub – путь, имя и расширение публичного ключа. Путь и имя ключевой пары отображаются при её создании.
newyuser1 – имя пользователя, которого создали для подключения по SSH или используем имя netadmin (root).
203.0.113.12 – IP-адрес сервера. Берем его в письме о готовности виртуальной машины или сервера к работе, также его можно получить в панели управления СЕРВЕР МОЛЛ Cloud:
– Для виртуальной машины: Fixed IP Address в разделе Interfaces.
– Для выделенных серверов: IP Addresses: в разделе Details.
/home/newuser1/.ssh – домашняя директория пользователя на сервере, которую указывали при его создании, дополненная поддиректорией /.ssh, где должны относящиеся к OpenSSH данные. Для пользователя root это обычно директория /root. Домашнюю директорию пользователя на сервере можно отобразить командой: echo ~<имя_пользователя>.
/home/newuser1/.ssh/authorized_keys – домашняя директория пользователя на сервере, которую указывали при его создании, дополненную поддиректорией /.ssh и именем файла authorized_keys, где будут хранится авторизованные публичные ключи.
Если к серверу еще не подключались с этого клиента, то отобразится следующий запрос:The authenticity of host '203.0.113.12 (203.0.113.12)' can't be established.ECDSA key fingerprint is SHA256:tXw8aipJLyyL4KBAjCaBvHU7K//HzkXuTtdLij2yJ2U.Are you sure you want to continue connecting (yes/no/[fingerprint])?
Отвечаем, набрав на клавиатуре yes и нажав кнопку Enter, подтверждая своё намерение подключиться к незнакомому хосту.
На запрос:newuser1@203.0.113.12's password:
Вводим пароль пользователя, который присвоили новому пользователю на Сервере, и нажимаем Enter. Если вы указывали имя пользователя netadmin (root), то пароль к нему возьмем из письма о готовности виртуальной машины или сервера к работе. - Подключаемся к удаленному серверу:
ssh newuser1@203.0.113.12
Используем IP-адрес и имя пользователя которые использовали на предыдущем шаге при пересылке публичного ключа на сервер.
На запрос:$ ssh newuser1@203.0.113.12Enter passphrase for key 'C:\Users\current_user/.ssh/id_rsa':
Вводим парольную фразу, которую использовали при создании ключевой пары на шаге 5 и нажимаем Enter.
Если парольная фраза и все шаги выполнены верно, то будет установлено подключение к удаленному серверу для его управления и вы увидите соответствующее приглашение.
Прервать соединение с сервером и выйти в терминал Клиента вы можете введя команду Exit и нажав Enter.
Подробно об этапах подключения через OpenSSH:
- Установка SSH-сервера.
- Создание нового пользователя.
- Установка SSH-клиента.
- Генерация ключевой пары.
- Передача публичного ключа на сервер.
- Подключение к серверу через SSH.