Для настройки и управления удаленными серверами на базе Linux обычно используется протокол SSH. С помощью SSH на удаленный компьютер можно передавать данные и команды, которые будут выполняться так как бы они выполнялись на локальной машине.
В этой инструкции мы рассмотрим процесс подключения к SSH из Windows 10. Первый способ будет актуален для Windows 10 версии 1809 и выше, а второй можно использовать как на Windows 10, так и на Windows 7.
Подключение по SSH с помощью OpenSSH
Раньше для подключения к Linux серверу по SSH из Windows компьютера требовалась установка программы PuTTy или какого-то другого SSH-клиента. Но, в операционной системе Windows 10 (начиная с версии 1809) доступен клиент OpenSSH, с помощью которого можно подключаться к Linux серверам по SSH. Это позволяет работать с терминалом Linux прямо из командной строки Windows 10, при этом не требуется установка никаких сторонних программ.
Перед тем как использовать данный способ подключения необходимо проверить версию Windows 10. Для этого нажмите комбинацию клавиш Win-R и выполните команду «winver». Если на вашем компьютере установлена Windows 10 с версией 1809 или выше, то все нормально, в противном случае сначала нужно выполнить обновление.
Также нужно открыть меню «Параметры» и зайти в раздел «Приложения – Дополнительные возможности».
Здесь нужно пролистать список установленных дополнительных компонентов и найти в нем «Клиент OpenSSH». Если такой компонент присутствует, значит все нормально и можно переходить к следующему шагу. Если нет, то его нужно сначала установить с помощью меню «Добавить компонент».
Обратите внимание, не нужно путать «Клиент OpenSSH» и «Сервер OpenSSH». Для подключения по SSH вам нужен именно клиент.
Также клиент OpenSSH можно установить с помощью PowerShell. Для этого запустите консоль PowerShell с правами администратора и выполните следующую команду:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Более подробно об установке и удалении клиента OpenSSH можно почитать в официальной документации Майкрософт.
Если версия Windows 10 подходящая и клиент OpenSSH установлен, то можно начинать подключение по SSH. Для этого запустите обычную командную строку Windows и введите команду «ssh». В ответ вы должны получить информацию о работе с данной командой.
В общем случае синтаксис команды «ssh» выглядит следующем образом:
ssh [email protected]
Где «user» — это имя пользователя на удаленном сервере, а «server» — это имя компьютера или его ip адрес.
Например, если наш сервер доступен по ip адресу «192.168.1.214», а имя пользователя это «aleks», то команда для подключения будет выглядеть так:
ssh [email protected]
После ввода данной команды появится запрос пароля и после этого мы получим доступ к удаленному серверу. Также при первом подключении с помощью ssh будет появляться запрос на добавление сервера в список известных.
По умолчанию для SSH используется порт 22. Для того чтобы это изменить нужно использовать параметр «-p». Например, для подключения по порту 2222 нужно выполнить вот такую команду.
ssh [email protected] -p 2222
Если подключение предполагает использование ключей, то они должны находиться в папке «C:Usersuser.ssh». А при подключении путь к приватному ключу нужно указать с помощью параметра «-i». Например, чтобы использовать ключ «C:Usersstepu.sshid_rsa» нужно выполнить:
ssh [email protected] -i C:Usersstepu.sshid_rsa
Более подробную информацию о команде «ssh» и ее параметрам можно получить на сайте man.openbsd.org/ssh или на opennet.ru (перевод).
Подключение по SSH через PuTTY
В тех случаях, когда версия Windows 10 не поддерживает OpenSSH (или используется Windows 7) к SSH можно подключаться с помощью программы PyTTY. Скачать установщик данной программы можно на официальном сайте www.putty.org.
После установки программы PyTTY ее можно будет запустить с помощью поиска в меню «Пуск»
Сразу после запуска программы PuTTY появляется окно с настройками подключения. Основными параметры здесь находятся на вкладке «Session», здесь нужно ввести:
- Имя компьютера или IP адрес;
- Порт для подключения (по умолчанию, 22);
- Способ подключения (SSH);
После ввода этих данных можно запускать подключение с помощью кнопки «Open».
Если для подключения к SSH используются ключи, то путь к приватному ключу нужно указать в разделе «Connection – SSH – Auth».
Обратите внимание, ключ должен быть сгенерирован программой PuTTYgen, которая устанавливается вместе с PuTTY. Если вы сгенерировали ключи с помощью OpenSSH, то их можно загрузить в PuTTYgen и сохранить в формате подходящем для PuTTy.
Если информация для подключения правильная, то вы увидите консоль с запросом на ввод имени пользователя пароля. Также при первом запуске появится запрос на добавление компьютера в список известных.
После ввода этих данных вы будете подключены к удаленному серверу по SSH.
Посмотрите также:
- Как удалить папку в Linux через терминал (консоль)
- Как открыть файл в терминале Linux
- Как создать файл в Linux через терминал
- Как скопировать файл в Linux через терминал
- Как удалить файл в Linux через терминал
Автор
Александр Степушин
Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.
Остались вопросы?
Задайте вопрос в комментариях под статьей или на странице
«Задать вопрос»
и вы обязательно получите ответ.
SSH-протокол (англ. Secure Shell ) используется для безопасного удалённого управления операционной системой. По SSH можно подключиться к любому серверу с операционной системой семейства Linux.
Если на вашем сервере установлена ОС Windows Server — используйте подключение по RDP.
- Где найти доступы к серверу
- Как подключиться к серверу по SSH с компьютера на ОС Windows
- Как подключиться к серверу по SSH с компьютера на Linux/MacOS
Где найти доступы к серверу
Для подключения по SSH потребуется указать IP-адрес, пароль и логин администратора сервера. Эти данные можно найти на почте, привязанной к аккаунту (после активации VDS приходит письмо с инструкцией) или в Личном кабинете — в разделе «Товары» откройте подраздел «Виртуальные серверы» — выберите сервер в списке, сверху «Инструкция».
В новой вкладке откроется страница с необходимой информацией.
Как подключиться по SSH с компьютера на ОС Windows
Если на вашем компьютере установлена ОС Windows, а на сервере — UNIX-подобная система (например, Ubuntu, Debian, CentOS и др.), то для установки SSH-соединения можно использовать PuTTY. Это бесплатная программа под Windows состоит из одного запускаемого файла и не требует установки.
Чтобы установить соединение при помощи PuTTY, необходимо проделать следующие действия:
0. Скачайте нужную версию PuTTY по ссылке.
1. Запустите файл putty.exe. Откроется окно программы:
По умолчанию никаких настроек программы менять не нужно. Достаточно убедиться, что указан порт Port 22 и тип соединения Connection type — SSH.
2. В поле Host Name (or IP address) введите IP-адрес сервера. Нажмите кнопку Open
.
Может появиться предупреждение системы безопасности PuTTY — оно срабатывает при подключении к новому серверу. Нажмите Да
— и соединение продолжится.
3. В появившейся командной строке введите имя пользователя, под которым будет выполнен вход на сервер. Для первого подключения к серверу или подключения в режиме администратора используется логин root
.
4. В следующей строке введите пароль пользователя. При вводе пароля символы в командной строке не отображаются: можно набрать пароль вслепую или вставить кликом правой кнопки мыши, предварительно скопировав (Ctrl+C) его из инструкции. После ввода нажмите клавишу Enter. Если имя пользователя или пароль указаны неправильно, выведется ошибка «Access denied». В случае успешного подключения откроется командная строка виртуального сервера.
Как подключиться к серверу по SSH с компьютера на Linux/MacOS
Подключиться по SSH к виртуальному серверу можно через терминал — в обоих случаях это приложение предустановлено.
В операционных системах семейства Linux (Ubuntu и др.) его можно открыть сочетанием клавиш Ctrl+Alt+T.
В MacOS приложение Терминал можно найти через Spotlight
(иконка поиска в правом верхнем углу экрана).
Подключиться к виртуальному серверу по SSH можно одной командой:
ssh username@ip_adress
где вместо username нужно указать логин пользователя, вместо ip-adress — IP-адрес сервера, к которому вы подключаетесь. Если на сервере используется нестандартный порт SSH, команда изменится:
ssh username@ip_adress -p 22
где 22 — порт, по которому будет произведено подключение по SSH.
После ввода команды система запросит подтверждение подключения (необходимо ввести yes и нажать Enter) и пароль пользователя. После ввода нажмите клавишу Enter — откроется SSH-соединение:
Этот материал был полезен?
Подключиться к машине по SSH можно с помощью пары SSH-ключей либо пароля. Рассказываем подробно о каждом способе
SSH-протокол — сетевой протокол, предназначенный для защищённого удаленного доступа к операционной системе и передачи данных. Для подключения по SSH удостоверьтесь, что в настройках файрвола установлено соответствующее правило для входящего трафика.
Подключение с помощью SSH-ключей. Подготовка
-
Генерация SSH-ключей в Windows 7/8
-
Генерация SSH-ключей в Windows 10, Linux OS, Mac OS
-
Генерация SSH-ключей в личном кабинете
-
Добавление SSH-ключей в личном кабинете
-
Удаление SSH-ключей в личном кабинете
-
Генерация и добавление SSH-ключей при создании виртуальной машины
Подключение с помощью пароля. Подготовка
-
Добавление пароля
Подключение к виртуальной машине по SSH
-
Подключение по SSH с Windows 7/8
-
Подключение по SSH с Windows 10, Linux OS, Mac OS
Подключение с помощью SSH-ключей. Подготовка
Для подключения к виртуальной машине необходимо создать открытый ключ, который будет храниться на виртуальной машине, и закрытый ключ, который размещается вне виртуальной машины, в удобном для вас хранилище.
Генерация SSH-ключей в Windows 7/8
Генерация SSH ключа с использованием командной строки (cmd) в операционных системах Windows 7/8 не предусмотрена.
Для генерации воспользуйтесь приложением PuTTY и входящим в пакет дополнением PuTTYgen.
1. Скачайте и установите приложение PuTTY.
2. Запустите приложение PuTTYgen.
3. В поле «Type of key to generate» укажите «RSA».
4. Для поля «Number of bits in a generated key» установите значение «2048».
5. Нажмите Generate.
Важно! Во время генерации ключа водите курсором в поле «Key» до тех пор, пока ключ не появится в поле.
6. В поле «Key passphrase» введите надёжный пароль.
7. Подтвердите пароль в поле «Confirm passphrase».
8. Нажмите кнопку Save private key и сохраните закрытый ключ.
Внимание! Никогда не передавайте закрытый ключ и пароль сторонним лицам.
9. Нажмите Save public key и сохраните открытый ключ в удобном для вас месте.
10. Вы всегда можете открыть и скопировать сохранённые ключи при помощи приложения «Блокнот».
Генерация SSH-ключей в Linux/MacOS/Windows 10
Чтобы сгенерировать ключи на Linux/MacOS/Windows 10:
1. Откройте консоль, терминал (MacOS) или командную строку (cmd.exe) для Windows 10.
2. Выполните команду:
ssh-keygen -t rsa -b 2048
3.Укажите название ключа в строке «Enter file in which to save the key».
Внимание! Если не указывать директорию (например, «.ssh/» ), ключи сохранятся в «~./<имя ключа>» (для Linux/MacOS) или в «C:Users<имя_пользователя><имя ключа>» (для Windows 10).
4. Нажмите Enter.
5. Далее задайте пароль для ключа или оставьте поле пустым и нажмите Enter, если хотите создать ключ без пароля.
6. Подтвердите пароль или оставьте поле пустым и нажмите Enter для сохранения ключа без пароля.
7. Ключ создан в директории по умолчанию или в той, которую вы прописали.
8. Публичная часть ключа будет сохранена в файле «<имя_ключа>.pub». Используйте его для последующего добавления к виртуальной машине. Файл можно открыть в текстовом виде в приложении «Блокнот».
Генерация SSH-ключей в личном кабинете сервиса Облако
Для создания SSH-ключа из личного кабинета следуйте описанным ниже шагам.
1. В личном кабинете перейдите в раздел Ключи SSH.
2. Нажмите Сгенерировать ключ.
3. Введите название ключа и нажмите Создать SSH ключ.
Важно! Допускается использование символов только латинского алфавита, нижнего подчеркивания, пробелов и точек. Длина имени должна быть от 3 до 63 символов.
4. Ключ сгенерируется и отобразится в списке SSH-ключей, его открытая часть уже будет храниться в системе, а закрытый ключ будет загружен на устройство в папку по умолчанию.
5. Для просмотра закрытого ключа найдите его на устройстве и откройте с помощью приложения «Блокнот».
Добавление SSH-ключей в личном кабинете сервиса Облако
Чтобы добавить уже созданный SSH-ключ в личный кабинет:
1. В панели управления сервиса Облако перейдите в раздел Ключи SSH.
2. Нажмите Добавить SSH ключ.
3. В поле «Содержимое ключа SSH» вставьте публичную часть SSH-ключа.
4. Задайте имя ключа в поле «Имя».
5. Нажмите Добавить SSH ключ.
Ключ появится в списке SSH-ключей.
Удаление SSH-ключей в личном кабинете сервиса Облако
1. Выберите SSH-ключ, который нужно удалить.
2. Нажмите напротив него на знак ···.
3. Выберите Удалить.
Генерация и добавление SSH-ключей при создании виртуальной машины
В личном кабинете у вас есть возможность создать и добавить SSH-ключ при создании виртуальной машины.
В процессе создания виртуальной машины в разделе SSH-ключ вам будет предложено:
-
добавить уже хранящийся в личном кабинете ключ, выбрав его из выпадающего списка;
-
добавить уже имеющийся в локальном хранилище ключ;
-
сгенерировать новый ключ.
1. При нажатии на Добавить SSH ключ откроется диалоговое окно. Добавьте открытую часть SSH-ключа, введите имя ключа для идентификации его в нашей системе и сохраните его.
Далее выберите ключ из раскрывающегося списка, чтобы добавить его к виртуальной машине.
2. При нажатии на кнопку Сгенерировать SSH ключ, откроется диалоговое окно, введите имя ключа для идентификации его в системе.
Публичный ключ автоматически добавится к виртуальной машине, а приватный скачается на ваше устройство в формате .pem.
После добавления или генерации нового SSH-ключа ключи будут появится в разделе Ключи SSH.
Подключение с помощью пароля. Подготовка
Для подключения по SSH с помощью пароля вам нужно указать пароль во время создания машины.
Добавление пароля
При создании виртуальной машины в пункте Дополнительные возможности активируйте опцию Пользовательские данные. Откроется окно, куда можно вписать скрипт для обработки cloud-init агентом, запущенным на виртуальной машине.
Впишите в поле код:
#cloud-config password: ваш пароль chpasswd: { expire: False } ssh_pwauth: True
С указанным паролем вы сможете подключаться к виртуальной машине по SSH или через личный кабинет.
Пароль не обязательно добавлять в явном виде, можно вписать его хэш-сумму (тот же пароль, только преобразованный; машина сможет его считать, а для человека он выглядит как случайный набор символов). Тогда, даже если кто-то попадёт в систему, то всё равно не узнает пароль — внутри будет храниться хэш-сумма. А система даст войти только по паролю. Для генерации хэш-суммы вы можете воспользоваться скриптом на Python:
#!/usr/bin/env python3 # based on https://stackoverflow.com/a/17992126/117471 # pip3 install passlib import sys from getpass import getpass from passlib.hash import sha512_crypt passwd = input() if not sys.stdin.isatty() else getpass() print(sha512_crypt.hash(passwd , rounds = 5000 ))
Подключение к виртуальной машине по SSH
Подключение по SSH с Windows 7/8
Важно! Подключение к виртуальной машине по SSH с использованием командной строки (cmd) в операционных системах Windows 7/8 не предусмотрено.
Для подключения воспользуйтесь приложением PuTTY.
1. Скачайте и запустите приложение PuTTY.
2. В разделе Session в поле «Host Name (or IP address)» введите IP-адрес виртуальной машины, который можно найти в столбце «IP адрес» в разделе Виртуальные машины.
Важно! Если вы создали машину только с приватным адресом, добавьте плавающий IP. Для этого в разделе Виртуальные машины нажмите на имя виртуальной машины, после чего в открывшемся окне нажмите Добавить IP.
3. В поле «Port» установите «22» — стандартный порт для подключения по SSH.
4. Далее для поля «Connection type» задайте значение SSH.
5. (Пункт только для тех, кто подключается с помощью SSH-ключа) в правой части экрана перейдите в Connection → SSH → Auth.
6. (Пункт только для тех, кто подключается с помощью SSH-ключа) нажмите Browse.
7. (Пункт только для тех, кто подключается с помощью SSH-ключа) выберите файл с приватным ключом для виртуальной машины в формате .ppk.
Важно! Если ваш приватный ключ сохранен в формате .pem, конвертируйте его в формат .ppk, как описано в статье «Конвертировать SSH-ключ из формата PEM в PPK».
8. Нажмите Open. Откроется консоль.
9. В строке «login as» введите имя пользователя, выданное вам при создании виртуальной машины. Оно находится в меню виртуальной машины, там стоит надпись вида «[логин]@[IP машины]. Чаще всего логин совпадает с названием ОС. Например, для машины ниже это «ubuntu».
10. (Пункт только для тех, кто подключается с помощью пароля) введите пароль, заданный вами при создании машины.
11. Нажмите Enter.
12. Вы подключились к виртуальной машине.
Подключение по SSH с Windows 10, Linux OS или Mac OS
Внимание! Если вы используете Linux OS или Mac OS, перейдите к шагу №7.
В Windows 10 есть встроенный OpenSSH клиент, который позволяет получать доступ к серверу через консоль так же, как и на Linux OS. По умолчанию этот компонент не активирован.
Для его установки:
1. Перейдите в меню Параметры Windows.
2. Перейдите в раздел Приложения, нажмите Дополнительные возможности.
3. В списке найдите OpenSSH Client и нажмите для раскрытия подробного описания.
4. Нажмите Установить.
5. Дождитесь завершения установки. После того, как OpenSSH Client будет установлен, перезагрузите компьютер для корректного применения настроек. Для командной строки станет доступна утилита SSH.
6. Откройте командную строку/терминал и введите команду со своими значениями:
«ssh username@192.168.1.92» — для подключения с помощью пароля;
«ssh username@192.168.1.92 -i «C:Usersusername.sshid_rsa»»: — для подключения с помощью ключа.
username |
Имя пользователя, указано справа от кнопки Открыть консоль.
|
192.168.1.92 |
IP-адрес вашей виртуальной машины. Важно! Если вы создали виртуальную машину только с приватным интерфейсом, создайте плавающий IP-адрес и используйте его при подключении к ВМ по SSH. |
C:Usersusername.sshid_rsa |
Путь к файлу с приватным ключом в вашем локальном хранилище. Ключ должен быть в формате .pem. |
7. Утилита предложит добавить устройство в список известных, напишите «yes», чтобы добавить, или «no», чтобы не добавлять. Нажмите Enter.
8. (Пункт только для тех, кто подключается с помощью пароля) введите пароль, который вы задали при создании машины.
9. Вы подключились к виртуальной машине.
Зачем нужен протокол SSH?
Обычные пользователи почти всегда работают с компьютером локально. То есть они физически находятся у компьютера, используют имеющиеся у него устройства ввода-вывода (клавиатуру, мышь, дисплей) для выполнения необходимых операций. Однако, не всегда есть возможность физически находиться у компьютера, с которым нужно работать. Например, если вы хотите создать свой сайт, то он будет размещен на компьютере хостинг-провайдера. Этот компьютер может находиться на другом конце света. Вам нужен способ запускать команды на этом компьютере не выходя из своего дома. При профессиональной работе с компьютерами часто возникает потребность выполнять определенные операции на удаленных машинах. Например, системный администратор может обслуживать компьютерную сеть, состоящую из десятков компьютеров. Было бы очень неудобно постоянно физически перемещаться между компьютерами. Более того, удаленный компьютер может располагаться, например, в центре обработки данных у облачного провайдера, или быть вообще виртуальной машиной на кластере. Такое часто бывает при использовании облачных систем.
Источник: securityboulevard.com.
Специально для таких случаев существуют протоколы удаленного доступа. Они позволяют подключиться к удаленному компьютеру и работать на нем так же, как вы обычно работаете на локальной физической машине. Такие протоколы разделяются на графические и текстовые. Графические протоколы, например, RDP (remote desktop protocol) передают по сети изображение графического интерфейса в одну сторону, движения мыши и события клавиатуры — в другую. Текстовые протоколы, такие как Telnet или SSH, передают только текстовую информацию и позволяют работать в терминале удаленной машины. Здесь мы рассмотрим самый популярный текстовый протокол удаленного доступа — SSH.
SSH — защищенный протокол для удаленного доступа к компьютерам. Через SSH можно выполнять операции в командной строке компьютера, который физически находится в другом месте. Иными словами, SSH — это дистанционная командная строка. Визуально вы работаете на своем компьютере, но в реальности — на другом.
Протокол — это набор соглашений, правил, по которым разные программы могут обмениваться информацией. SSH — это набор правил, который известен и вашему компьютеру, и физически отдаленному компьютеру. Пример: вы вводите команду удаления файла, и эта команда передается на другой компьютер и выполняется там. Ответ (или сообщение об ошибке) возвращается и показывается на вашем компьютере.
При удаленной работе обычно используются существующие открытые каналы коммуникации, то есть компьютерные сети. Почти всегда — подключение происходит через Интернет. Поэтому очень важно обеспечить безопасность соединения. При использовании протокола SSH вся информация передается в зашифрованном виде. Подобно тому, как некоторые сайты работают по HTTPS, шифруя информацию. Например, ваш онлайн-банкинг обязательно должен работать по защищенному соединению. В таком случае даже если всю информацию перехватывает злоумышленник, он не сможет расшифровать её.
Используя SSH можно подключиться к любой удаленной машине при соблюдении некоторых условий. Ни параметры удаленной машины, ни расстояние не имеют значения. Также можно подключаться как к физическим, так и к виртуальным машинам. При подключении, вы даже можете не знать, к чему вы подключаетесь, к физическому компьютеру или к виртуальной машине в датацентре какой-то компании. При работе никакой разницы вы не заметите.
Как и большинство сетевых протоколов, SSH работает по клиент-серверному принципу. То есть на вашем компьютере, за которым вы работаете физически должна быть установлена специальная программа — ssh клиент. С ее помощью вы и будете подключаться к другим машинам. А на удаленной машине, то есть той, к которой вы подключаетесь должна работать другая программа — ssh сервер. Она будет принимать ваше подключение, выполнять ваши команды, следить за правами доступа и так далее. Как настроить и клиент и сервер мы поговорим далее.
Выводы:
- При работе часто возникает потребность выполнять операции на разных удаленных хостах.
- Обычное незащищенное соединение для этого не подходит из-за проблем с безопасностью.
- Протокол SSH позволяет выполнять команды терминала на удаленной машине.
- Протокол SSH начинает шифровать соединение еще до ввода пароля пользователя.
- Таким образом можно подключаться к любым машинам, физическим и виртуальным.
- SSH является клиент-серверным протоколом. На локальной машине работает клиент ssh, на удаленной — сервер.
Что нужно для успешного удаленного доступа?
Источник: Wikimedia.
Для того, чтобы иметь возможность подключиться к удаленной машине нужно соблюдение нескольких условий. Во-первых, как мы уже говорили, на ней должен быть установлен и работать ssh сервер. Существуют разные сервера, но самым распространенным является свободный и бесплатный сервер openssh. Он существует и для Linux и для Windows и для других операционных систем. Во многие дистрибутивы Linux, ориентированные на серверную работу он устанавливается по умолчанию. Если же его нет, то установить его очень просто командой:
1
$ sudo apt install openssh-server
Естественно, удаленная машин должна быть доступна по сети с локальной. Если удаленная машина выключена, не подключена к сети или подключена к изолированной сети, куда не пройдут пакеты от локальной машины — подключиться вы к ней не сможете. Другими словами, удаленная машина должна пинговаться с локальной.
Обратите внимание, что удаленная машина не должна быть скрыта NAT’ом или каким-либо сетевым экраном, блокирующим входящие соединения. Кстати, домание компьютеры, выходящие в интернет через обычного провайдера, как правило, как раз скрыты за NAT. Поэтому, находясь в своей домашней сети, вы сможете подключиться к другому компьютеру в ней, а извне — нет.
Протокол ssh никак не связан с интернетом. Вы можете подключаться к машинам, которые подключены в общую локальную сеть, независимо от того, есть ли выход в интернет. В любом случае, вы должны знать адрес удаленной машины, чтобы к ней подключиться. Обычно используется IP-адрес. Но если у сервера есть назначенное доменное имя — можете использовать его.
Кроме IP-адреса нужно знать номер сетевого порта, который прослушивает сервер ssh. По умолчанию любая служба ssh использует порт 22. Однако, администраторам при настройке сервера рекомендуется ради безопасности изменить порт на случайный. Поэтому для подключения надо знать, был ли переназначен стандартный порт и, если да, то на какой.
Еще одно необходимое условие — знание учетной записи пользователя на удаленной машине. Помните, что после подключения вы первым делом должны будете авторизоваться на сервере. Поэтому для этого вы должны знать имя пользователя и его пароль. Этот пользователь должен быть зарегистрирован именно на удаленной машине. Ваш локальный пользователь не подойдет. Если вы сами настраиваете сервер, то такое надо предусмотреть заранее. Например завести специального пользователя, предназначенного именно для того, чтобы под ним на эту машину заходили по протоколу ssh.
Еще одно предостережение. На реально используемых серверах обязательно должен стоять файерволл — специальная программа, которая блокирует входящие соединения на определенные порты. Она нужна для безопасности. Так вот, по умолчанию, такие программы блокируют все порты. Если вы хотите какие-то определенные порты использовать, их надо добавить в исключения файервола.
Как мы уже говорили, на локальной машине должне быть установле ssh-клиент. В *nix-подобных системах (Linux, macOS) клиент обычно установлен в системе по умолчанию, и достаточно открыть терминал и воспользоваться командой ssh. В Windows нужно скачать сторонний клиент, например, Putty. SSH-клиентов тоже существует много разных. Есть даже графические клиенты. Но даже в них придется работать в командной строке — ведь сам протокол ssh — чисто текстовый.
Выводы:
- Для подключения нужно знать адрес сервера, логин и пароль, порт подключения (по умолчанию, 22) .
- Еще нужно, чтобы сетевая инфраструктура была правильно настроена.
- Нужно, чтобы на удаленной машине работал сервер SSH.
- Самый распространенный сервер — OpenSSH — бесплатный и открытый.
- Нужно, чтобы удаленная машина была доступна по сети.
- Системные администраторы могут заблокировать доступ к порту ssh.
- По умолчанию, порты обычно закрыты, нужно их открыть.
- На локальной машине должен быть установлен клиент ssh.
- Есть консольные и графические клиенты ssh, но работать все равно придется в терминале.
Как подключиться к серверу из командной строки?
Для подключения нужно воспользоваться командой ssh. при запуске нужно указать адрес сервера, имя пользователя и, опционально, порт подключения. Вот как выглядит команда при использовании консольного клиента (в терминале):
1
$ ssh username@remote_host -p port
Например, для подключения к серверу 52.307.149.244 в аккаунт user нужно ввести:
1
$ ssh user@52.307.149.244
Если не указывать порт, то будет использован порт SSH по умолчанию — 22. Используемый порт задается при настройке SSH-сервера.
При первом подключении к конкретному серверу появится такое сообщение:
1
2
3
The authenticity of host '52.307.149.244 (52.307.149.244)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Введите yes в первый раз.
Это нужно для повышения безопасности. При настройке SSH-сервера создается уникальная комбинация символов — fingerprint («отпечатки пальцев»). Ваш компьютер запоминает эту комбинацию и сверяет ее при каждом новом соединении. Если кто-то переустановит SSH-сервер, или всю операционную систему, или вообще заменит удаленный компьютер, сохранив его адрес, то при следующем соединении вы узнаете об этом, потому что изменится fingerprint. Если fingerprint не меняется, то такое сообщение не будет появляться.
Простейший вариант — подключение по паролю. После ввода команды ssh система запросит пароль:
1
2
$ ssh ivan@52.307.149.244
password:
Пароль придется вводить каждый раз. Обратите внимание, что пароль нужно вводить уже после установки подключения. Это сделано для того, чтобы передаваемый по сети пароль уже мог шифроваться. Ведь передавать пароли в открытом виде — очень небезопасно.
После подключения вы войдете в командную строку удаленной машины. В командной строке немного чего изменится.
Обратите внимание, что изменилось приглашение командной строки — теперь там отображаются данные удаленной машины, другое имя пользователя. Другое приглашение — явный знак того, что вы работаете не на своем локальном физическом компьютере.
Теперь можно вводить любые команды и они будут выполнены на удаленном компьютере. Порядок работы такой же, как и в обычной командной строке.
Для выхода из удаленного сеанса необходимо нажать комбинацию клавиш Ctrl + D. Либо можно ввести команду exit.
Выводы:
- Команда ssh username@remote_host осуществляет подключение к удаленному терминалу.
- Если вы подключились к этому компьютеру первый раз, нужно будет подтвердить его.
- Опция -p позволяет подключиться по любому номеру порта.
- После установки соединения вам нужно будет ввести пароль от удаленной учетной записи.
- После этого вы сможете работать в командной строке так же, как и на локальной машине.
- Для выхода из удаленного сеанса есть команда exit или сочетание Ctrl + D.
Как подключиться к серверу по ключу?
Пи работе с удаленными машинами приходится при каждом подключении вводить пароль. Если вы работаете на разных машинах, приходится запоминать все пароли от всех удаленных компьютеров. Это, конечно, безопасно, но очень неудобно. К счастью, методы асимметричного шифрования позволяют избежать этого и авторизоваться на удаленных машинах без пароля, по ключу.
Асимметричные шифры устроены таким образом, что всегда используют пару ключей — один для шифрования данных, а другой, парный — для расшифровки. Эта пара ключей генерируется вместе специальным алгоритмом. И по одному ключу невозможно восстановить другой. Причем расшифровать данные можно только тем ключом, который был сгенерирован в паре с тем, которым эти данные были зашифрованы.
Поэтому пару ключей можно использовать и для авторизации. Один из ключей — тот, что используется для шифрования — назвается приватным. Его нельзя никому передавать, показывать или пересылать. Его надо хранить в секрете. Второй ключ — публичный — используется для расшифровывания. Вот его можно передавать кому угодно. Обратите внимание, что если какие-то данные удается расшифровать вашим публичным ключом, это значит, что они были зашифрованы вашим приватным ключом, и никаким другим. А так как ваш приватный ключ знаете только вы, значит и отправили эти данные именно вы. Так публичный ключ как бы подтверждает вашу личность.
Обратите внимание, что в такой схеме не очень соблюдается секретность передачи данных — ведь расшифровать их может кто угодно. Подробное рассмотрение алгоритмов шифрования и протоколов и схем их применения далеко выходит за рамки нашей темы. Заметим только, что в реальности для обеспечения секретности, целостности и идентификации в криптографических системах используются разные схемы. Мы сейчас рассматриваем только использование ключей для авторизации на сервере.
Итак, чтобы использовать авторизацию по ключу надо первым делом сгенерировать свою собственную пару ключей. Для этого используется программа ssh-keygen, которая включена в пакет ssh-клиента.
Создадим пару ключей:
Программа запустится и спросит, куда сохранять ключи:
1
2
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Нажмите Enter для сохранения в стандартное место — директорию .ssh/id_rsa в вашей домашней директории.
Программа запросит passphrase. Это вроде пароля для ключа. Пароль используется для дополнительной защиты — его надо будет вводить каждый раз при использовании ключа. Идея в том, что вместо разных паролей придется запомнить только один — от ключа. Можно просто нажать Enter и пропустить этот шаг.
1
2
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Ключи созданы:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.
The key fingerprint is:
8c:e9:7c:fa:bf:c4:e5:9c:c9:b8:60:1f:fe:1c:d3:8a root@here
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| + |
| o S . |
| o . * + |
| o + = O . |
| + = = + |
| ....Eo+ |
+-----------------+
Теперь у вас есть два файла:
- ~/.ssh/id_rsa — приватный ключ. Никогда никому и никуда не передавайте его!
- ~/.ssh/id_rsa.pub — публичный ключ. Спокойно распространяйте его.
В Windows можно использовать ssh-gen в подсистеме Ubuntu for Windows или в командной строке Git for Windows. Или создавать ключи графической утилитой вроде PuTTYgen.
После генерации необходимо скопировать ключ на удаленный сервер. Нужно добавить публичный ключ на сервер в файл ~/.ssh/authorized_keys. Самый простой способ — запустить на локальной машине команду для копирования ключа:
1
$ ssh-copy-id -i /home/demo/.ssh/id_rsa ivan@52.307.149.244
Обратите внимание, что при этом придется обязательно ввести пароль от учетки на сервере. Таким образом скопированный ключ подтверждает, что его владелец знает пароль, поэтому в будущем можно его пускать без проверки.
Другой способ — подключиться по паролю, открыть в редакторе файл ~/.ssh/authorized_keys и добавить в конец текст из вашего файла ~/.ssh/id_rsa.pub.
Теперь при подключении пароль запрашиваться не будет. После включения соединений по ключу рекомендуется отключить подключение по паролю в настройках ssh сервера.
Один и тот же публичный ключ можно использовать для авторизации на разных серверах. Просто скопируйте его туда, куда часто заходите. Кроме обычных компьютеров, авторизация через SSH по ключу используется и на многих публичных сервисах. Например, популярный хостинг программных репозиториев GitHub заставляет использовать именно доступ по ключу для синхронизации проектов. Многие облачные сервисы так же имеют возможность авторизации по ключу.
Только заметьте, что если вы скомпрометировали ваш приватный ключ, придется генерировать новую пару ключей. А затем придется рассылать новый публичный ключ по всем свои серверам. Причем, компрометация — это не когда вы его по ошибке где-то опубликовали, это когда возникает малейшее подозрение, что третьи лица могли получить к нему доступ.
Выводы:
- Запоминать много паролей от серверов часто неудобно и небезопасно.
- Асимметричное шифрование позволяет избежать ввода пароля каждый раз.
- Команда ssh-keygen позволяет сгенерировать пару ключей — приватный и публичный.
- Приватный ключ надо хранить в секрете. Если он скомпрометирован, придется создавать новую пару.
- Публичный ключ может удостоверять подлинность отправителя.
- Можно скопировать публичный ключ на сервер командой ssh-copy-id -i.
- Ключ может быть разослан на несколько серверов, и на них можно заходить без пароля.
- Ключ тоже можно защитить паролем.
Как запомнить частые подключения?
При работе с многими удаленными серверами кроме паролей приходится запоминать еще много информации: ip-адреса, имена пользователей на каждом сервере, номера нестандартных портов, которые тоже могут отличаться, другие опции. Это не так критично, как пароли, но все равно может доставить неудобств.
В стандартном клиенте ssh предусмотрена возможность запомнить частые подключения в конфигурационном файле. Он располагается по адресу ~/.ssh/config. Если его там нет, вполне можно создать новый пустой. Вообще, папка ~/.ssh/ — это общее место, где собираются многие файлы, имеющие отношение к входящим или исходящим подключениям по ssh. Например, именно туда сохраняются файлы ключей и публичные ключи удаленных пользователей.
Этот файл имеет довольно простую структуру. В нем прописывается символьное имя подключения, которые вы будете использовать вместо строки подключения в команде ssh. После этого могут идти несколько опций, например — имя пользователя, адрес хоста, номер порта, адрес публичного ключа, который будет использоваться при подключении. Выглядит это примерно так:
1
2
3
4
5
6
7
8
9
10
11
12
Host targaryen
HostName 192.168.1.10
User daenerys
Port 7654
IdentityFile ~/.ssh/targaryen.key
Host tyrell
HostName 192.168.10.20
user oberyn
Host martell
HostName 192.168.10.50
У этого файла довольно много опций, но эти — самые полезные. После того, как в файл добавлена запись можно подключаться к хосту только по алиасу, например так:
Все остальные параметры клиент подставит сам.
Выводы:
- Файл ~/.ssh/config используется, чтобы запомнить часто использующиеся подключения.
- Можно присвоить символьное имя и связать его с адресом, именем пользователя.
- В этом файле можно прописать использование определенного файла ключа.
- Файл приватного ключа в таком случае выступает идентификацией (identity).
Зачем нужна программа Tmux?
При работе в удаленной сессии есть один подводный камень. Из-за особенности функционирования процессов в Linux, когда мы выходим из сеанса (разлогиниваемся), то все запущенные команды и программы автоматически завершатся. Следующий раз нам приходится начинать работы с самого начала. И нельзя запустить какой-то долгий процесс, чтобы он выполнялся, пока мы отключились. Такое происходит и в случае непреднамеренного отключения, например, при обрыве связи.
Чтобы обойти это ограничение, существуют специальные программы. Они не входят в стандартные дистрибутивы, так что их придется устанавливать отдельно. Такие программы работают резидентно, то есть в режиме сетевой службы и поэтому могут поддерживать сеанс даже после того, как пользователь отключился.
Tmux (terminal multiplexor) — популярная программа, значительно
облегчающая работы в терминале на удаленной машине. Среди
возможностей данной программы:
- разделение экрана на несколько консолей
- создание нескольких экранов
- сохранение выполняющихся процессов на удаленной машине после выхода из сессии
- расшаривание ssh сессий нескольким пользователям
То есть кроме поддержания сессии tmux сильно “прокачивает” стандартную командную строчку. Это очень упрощает и ускоряет сложную работу на сервере.
Для начала работы необходимо подключиться к удаленной машине по ssh.
Конечно, можно использовать программу tmux на локальной машине для
расширения возможностей терминала, но здесь мы рассмотрим возможности
этой программы при удаленном доступе к терминалу.
При необходимости нужно установить tmux, введя команду
Обратите внимание, что эта программа должна быть установлена именно на той машине, на которой вы будете выполнять команды. То есть, если вы планируете использовать ее для работы на удаленном сервере, то именно в нем она и должна быть установлена. Если она есть только на вашей локальной машине, на сервере она не заработает.
Теперь можно запустить tmux, введя одноименную команду:
На экране мы видим главное окно программы tmux:
Сочетание клавиш <Ctrl>+B позволяет вводить команды tmux. Наиболее
применимые команды:
- ctrl-b c — запуск нового окна;
- ctrl-b , — переименование окна;
- ctlb-b p — переключение к предыдущему окну;
- ctlb-b n — переключение к следующему окну;
- ctlb-b w — вывести список окон;
- ctlb-b % — разделение окна вертикально на две панели;
- ctlb-b “ — разделение окна горизонтально;
- ctlb-b d — отсоединиться от сессии;
Обратите внимание, сначала надо зажать <Ctrl>+B именно как комбинацию клавиш. Потом отпустить и сразу нажать клавишу, соответствующую нужной команде. Поначалу такая работа покажется очень неудобной, но со временем вы привыкните к такому оригинальному методу ввода команд.
Обратите внимание на нижнюю строчку. Здесь перечислены открытые окна
терминала. Можно воспринимать их как вкладки, по которым можно
перемещаться. Мы можем создать новое окно (ctrl-b c):
Теперь мы видим, что в нижней строке появилось окно 1. Звездочкой
обозначено текущее окно.
Мы можем также переименовать окно (ctrl-b ,), чтобы лучше ориентироваться. Это бывает полезно для организации рабочего пространства.
Теперь мы имеем второе окно (под номером 1, так как нумерация начинается с 0) с именем window1.
Давайте для иллюстрации запустим в первом окне команду htop:
Tmux позволяет вывести список всех созданных окон (ctrl-b w), в котором можно
перемещаться между ними. Также доступен предварительный просмотр
содержимого каждого окна:
Работая в этой программе можно также разделять пространство в отдельно
взятом окне на две панели. В каждой панели можно работать независимо,
вводить команды и наблюдать результат одновременно.
Текущее окно или панель можно разбить на две панели как вертикально (ctrl-b %), так и горизонтально (ctrl-b «). Панели можно дробить неограниченное число раз:
При выполнении команды exit (или ctrl-d) панель закрывается.
Если эта панель была единственной в окне — то закроется все окно, а если окно было единственным — программа tmux завершится.
Еще одной возможностью tmux является работа с сессиями. Если
использовать сессии, то вместо выхода из сессии подключения
к удаленной машине можно отключиться от сессии, а при повторном
подключении сессия сессия сохранит свое состояние. То есть, все
процессы, запущенные на удаленной машине так и будут продолжать
выполняться.
Для запуска сессии необходимо запустить tmux со специальным параметром, указав имя сессии:
Запустим в этой сессии какой-нибудь интерактивный процесс:
Нажав сочетание клавиш ctrl-b d, отсоединимся от сессии:
При помощи команд терминала можно убедиться, что программа, которую мы запустили все еще работает, несмотря на то, что мы вышли из
родительского процесса.
Можно даже выйти из подключения к удаленной машине и спустя некоторое
время зайти обратно.
При запуске tmux можно вывести список всех открытых сессий:
Соответственно, можно вместо запуска нового терминала подключиться к
одной из существующих сессий:
Как мы можем наблюдать, терминал остался в том же состоянии, в котором мы его оставили, когда выходили из сессии:
Выводы:
- При отключении от удаленного хоста все запущенные процессы завершатся.
- Иногда нужно запустить процесс так, чтобы он продолжался на сервере после отключения.
- Для этого существуют специальные резидентные программы, например, tmux.
- Tmux организует сессии, которые продолжаются даже после отключения пользователя.
- Также вы можете продолжать работу с того места, с которого отключились.
- Tmux позволяет создавать несколько вкладок, разбивать окно терминала на области.
- Tmux сильно упрощает работу с терминалом и с удаленными серверами.
- Для работы tmux должен быть установлен на удаленном сервере.
SSH — это основной протокол для удаленного управления серверами на базе операционной системы Linux. Все действия при подключении к SSH выполняются в командной строке, но при достаточном уровне знаний и привилегий в системе там можно сделать практически все что угодно, в отличие от того же FTP где можно только передавать и редактировать файлы.
Если вы покупаете VPS сервер или продвинутый хостинг, обычно в письме вместе с другими данными авторизации есть данные доступа по SSH. В этой статье мы рассмотрим как подключиться по SSH к серверу из Linux или Windows.
Поскольку эта статья рассчитана именно на новичков, то перед тем, как перейти дальше давайте подробнее разберемся что из себя представляет SSH. Исторически так сложилось что на большинстве серверов используется операционная система Linux, во многом этому посодействовала ее бесплатность. Графический интерфейс на серверах Linux не используется для экономии ресурсов, поэтому единственным способом администрирования сервера остается командная строка.
Но это не является недостатком, потому что в командной строке Linux можно сделать больше чем графическом интерфейсе. Протокол SSH позволяет вам выполнять команды в удаленной системе так, как будто вы это делаете в своей системе. Вам доступен буфер обмена, вы вводите команды и можете использовать их вывод. Недоступны разве что файлы из вашей файловой системы. Например, когда вы подключитесь к серверу по SSH из Ubuntu, то все будет выглядеть так, как будто вы открыли терминал в своей системе.
Как подключиться по SSH
Для подключения по SSH нам необходимо знать такие данные:
- ip адрес сервера, к которому мы собираемся подключится;
- порт, на котором ожидает подключения SSH сервер, по умолчанию используется 22, но в целях безопасности порт подключения ssh часто изменяют;
- имя и пароль пользователя на удаленном сервере.
Больше ничего не нужно, обычно эти данные присылают в письме вместе с описанием VPS. Теперь перейдем к практике.
1. Подключение через SSH в Linux
В Linux подключение по SSH выполняется с помощью утилиты ssh. Мы более подробно рассматривали работу с ней в статье как пользоваться ssh. Для подключения к удаленному компьютеру ее синтаксис будет выглядеть следующим образом:
$ ssh имя_пользователя@айпи_адрес
Это самый простой вариант, если вам также нужно задать порт, используйте опцию -p:
$ ssh имя_пользователя@айпи_адрес -p порт
Чтобы выполнить подключение по SSH Linux нажмите Ctrl+Alt+T для открытия терминала и наберите команду, заменив нужные значения:
ssh sergiy@192.168.1.2
Или, с нестандартным портом:
ssh sergiy@192.168.1.2 -p 2223
Если ip_адрес и порт правильные, то на следующем шаге программа попросит у вас ввести пароль:
Если пытаетесь подключится через SSH к этому серверу первый раз, то утилита также попросит подтвердить добавление нового устройства в свой список известных устройств, здесь нужно набрать yes и нажать Enter:
Теперь вы подключены, и все вводимые далее команды будут выполнены на удаленном сервере:
Если же произошла ошибка и IP адрес или порт введены неверно, то вы получите ошибку Connection Refused:
Просто убедитесь что порт введен верно. Если это ваш сервер, то, возможно на нем еще нужно разрешить подключение SSH в брандмауэре. В Ubuntu/Debian для этого на удаленном сервере выполните:
sudo ufw allow 22/tcp
А в CentOS/Fedora:
firewall-cmd --permanent --zone=public --add-port=22/tcp
Если вы используете другой порт для SSH, то замените 22 на свой порт. Для удобства подключения по SSH в дальнейшем можно настроить авторизацию по ключу ssh, чтобы не вводить каждый раз пароль.
Теперь вы знаете как подключиться по ssh linux и решить проблемы с подключением. А теперь перейдем к Windows.
2. Подключение через SSH в Windows
Раньше подключение по SSH из Windows выполнялось только с помощью сторонних утилит, например PuTTY. Но в Windows 10 был добавлен встроенный OpenSSH клиент и работает он точно так же, как и в Linux. По умолчанию этот компонент не активирован. Для его установки откройте Параметры -> Приложения:
Затем выберите Управление дополнительными компонентами:
Здесь нажмите добавить новый компонент и в открывлемся меню выберите OpenSSH Client и нажмите Устанвоить:
Дальше вернитесь назад и дождитесь завершения установки. После того, как SSH клиент будет установлен нужно обязательно перезагрузить компьютер.
После перезагрузки нажмите Win+R чтобы открыть окно запуска команд и наберите в нем cmd:
Далее нажмите Enter. Перед вами откроется командная строка Windows. Здесь можно использовать утилиту ssh. Синтаксис у нее абсолютно такой же, как и для Linux:
ssh имя_пользователя@айпи_адрес -p порт
Например, такой командой можно подключится по SSH к Raspberry Pi, который находится в вашей локальной сети по адресу 192.168.1.5:
ssh pi@192.168.1.5
Утилита предложит добавить устройство в список известных:
Затем предложит ввести пароль:
Все следующие команды будут выполняться уже на Raspberry Pi или другой удаленной машине, к которой вы подключились.
Теперь подключиться к серверу по ssh из этой операционной системы также просто как и из Linux.
Выводы
В этой статье мы рассмотрели как выполняется подключение к серверу по SSH из Linux или Windows. Как видите, это очень просто. А дальше, для работы с удаленным сервером вам понадобятся команды терминала Linux.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Содержание
- Установка OpenSSH
- Установка OpenSSH с помощью приложения «Параметры» в Windows
- Установка OpenSSH с помощью PowerShell
- Запуск и настройка OpenSSH Server
- Подключение к OpenSSH Server
- Удаление OpenSSH с помощью приложения «Параметры» в Windows
- Удаление OpenSSH с помощью PowerShell
- Подключение к Windows по SSH как в Linux
- Как подключиться к серверу по SSH с помощью пароля или ключа
- Проверка службы SSH на сервере
- Использование пароля
- Подключение на Windows
- Подключение на Linux и macOS
- Работа с SSH и SFTP
- PuTTY для Windows
- Терминал в Linux и Mac OS
- Secure Shell в браузере Google Chrome
- Использование SSH-ключей
- WinSCP для Windows
- Терминал в Linux и Mac OS
- Подключение с помощью SSH
- Что необходимо для подключения с помощью SSH
- Запуск сервера SSH
- Подключение с использованием имени и пароля
- Имя пользователя и пароль в фабричной ОС
- Соединение с помощью пары ключей
- Создание пары ключей
- Подключение
- Безопасный FTP
Установка OpenSSH
Область применения Windows Server 2019, Windows 10: Windows Server 2022,
OpenSSH — это средство подключения для удаленного входа, использующее протокол SSH. Оно шифрует весь трафик между клиентом и сервером для предотвращения перехвата информации, перехвата подключения и других атак.
OpenSSH можно использовать для подключения устройств с Windows 10 (версия 1809 и более поздние) или Windows Server 2019 с установленным клиентом OpenSSH к таким устройствам с установленным сервером OpenSSH.
Если вы скачали OpenSSH из репозитория GitHub по адресу PowerShell/openssh-portable, следуйте приведенным в репозитории инструкциям, а не инструкциям в этой статье.
Установка OpenSSH с помощью приложения «Параметры» в Windows
Оба компонента OpenSSH можно установить с помощью «Параметров» Windows на устройствах Windows Server 2019 и Windows 10.
Чтобы установить компоненты OpenSSH, сделайте следующее:
Откройте приложение Параметры, выберите элементы Приложения > Приложения и возможности, щелкните Дополнительные возможности.
Просмотрите этот список и определите, установлено ли средство OpenSSH. Если нет, выберите пункт Добавить компонент в верхней части страницы и сделайте следующее:
После завершения установки вернитесь в раздел Приложения > Приложения и возможности и Дополнительные возможности, где теперь должно появиться средство OpenSSH.
Установка OpenSSH с помощью PowerShell
Чтобы установить OpenSSH с помощью PowerShell, запустите PowerShell от имени администратора. Для проверки доступности OpenSSH выполните следующий командлет:
Если ни один из них не установлен, должно отобразиться следующее:
Затем установите нужный серверный или клиентский компонент:
Оба командлета должны вернуть такие выходные данные:
Запуск и настройка OpenSSH Server
Чтобы запустить и настроить OpenSSH Server для первого использования, откройте PowerShell от имени администратора и выполните следующие команды для запуска sshd service :
Подключение к OpenSSH Server
После установки вы можете подключиться к серверу OpenSSH с устройства Windows 10 или Windows Server 2019, на котором установлен клиент OpenSSH, с помощью PowerShell, как показано ниже. Обязательно запустите PowerShell от имени администратора:
Когда подключение будет установлено, отобразится примерно следующее сообщение:
Если выбрать Да, этот сервер будет добавлен в список известных узлов SSH в клиенте Windows.
На этом этапе нужно ввести пароль. В целях безопасности пароль не будет отображаться по мере ввода.
После подключения вы увидите командную оболочку Windows:
Удаление OpenSSH с помощью приложения «Параметры» в Windows
Чтобы удалить OpenSSH с помощью приложения «Параметры» в Windows, сделайте следующее:
Удаление OpenSSH с помощью PowerShell
Чтобы удалить компоненты OpenSSH с помощью PowerShell, выполните следующие команды:
Если служба использовалась во время удаления, может потребоваться перезагрузка Windows.
Источник
Подключение к Windows по SSH как в Linux
Меня всегда удручало подключение к Windows машинам. Нет, я не противник и не сторонник Microsoft и их продуктов. Каждый продукт существует для своей цели, но речь не об этом.
Для меня всегда было мучительно больно подключаться к серверам с Windows, потому что эти подключения либо настраиваются через одно место (привет WinRM с HTTPS) либо работают не очень стабильно (здравствуй RDP к виртуалкам за океаном).
Поэтому, случайно натолкнувшись на проект Win32-OpenSSH, я решил поделиться опытом настройки. Возможно кому-нибудь эта тулза сэкономить кучу нервов.
Варианты установки:
Отмечу, что данный проект пока что находится на стадии beta, поэтому его не рекомендуют использовать в production.
Итак, скачиваем последний релиз, на текущий момент это 7.9.0.0p1-beta. Есть версии как для 32 так и для 64 битных систем.
Распаковываем в C:Program FilesOpenSSH
Обязательный момент для корректной работы: права на запись в этой директории должны быть только у SYSTEM и у админской группы.
Устанавливаем сервисы скриптом install-sshd.ps1 находящимся в этой директории
Разрешаем входящие подключения на 22 порт:
Уточнение: апплет New-NetFirewallRule используется на Windows Server 2012 и новее. В наиболее старых системах (либо десктопных) можно воспользоваться командой:
При запуске будут автоматически сгенерированы хост-ключи (если отсутствуют) в %programdata%ssh
Автозапуск сервиса при запуске системы мы можем включить командой:
Так же, можно сменить командную оболочку по умолчанию (после установки, по умолчанию — cmd):
Уточнение: Необходимо указывать абсолютный путь.
А дальше настраиваем sshd_config, который расположем в C:ProgramDatassh. Например:
И создаем в пользовательской папке директорию .ssh, а в ней файл authorized_keys. Туда записываем публичные ключи.
Важное уточнение: права на запись в этот файл, должен иметь только пользователь, в чьей директории лежит файл.
Но если у вас проблемы с этим, всегда можно выключить проверку прав в конфиге:
К слову, в C:Program FilesOpenSSH лежат 2 скрипта (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), которые должны но не обязаны фиксить права, в том числе и с authorized_keys, но почему-то не фиксят.
Не забывайте перезапускать сервис sshd после для применения изменений.
Источник
Как подключиться к серверу по SSH с помощью пароля или ключа
SSH — зашифрованный протокол для удаленного управления серверами. Для подключения через него вы можете каждый раз вводить пароль или настроить авторизацию по ключу. Второй вариант безопаснее, но у него есть свои особенности. В этой статье мы рассмотрим оба метода подключения, а вы уже сами выберите, какой способ удобнее.
Проверка службы SSH на сервере
Доступ по SSH обычно можно включить при создании сервера или во время настройки конфигурации. Убедиться в том, что он разрешен, можно через консоль. Она доступна в панели управления сервером.
Например, у меня VDS на Timeweb. Чтобы попасть в консоль, я авторизуюсь по логину и паролю, выданному хостером, выбираю свой сервер в списке VDS и перехожу на вкладку «Консоль».
Чтобы пользоваться консолью, нужно авторизоваться. Логин и пароль для доступа к серверу хостер присылает в письме. Сначала нужно ввести логин и нажать на клавишу Enter. Появится строка Password. В ней необходимо ввести пароль и снова нажать на клавишу Enter.
Важно: в целях безопасности при вводе пароля на экране не отображаются никакие символы, даже привычные звездочки.
После авторизации в консоли можно проверить, запущена ли служба SSH на сервере.
Если служба не активна, добавьте ее самостоятельно. Выполните команду sudo apt install openssh-server и подтвердите установку пакетов.
Кроме того, для подключения вам может понадобиться настройка брандмауэра. Чтобы межсетевой экран не блокировал входящие соединения, можно на время отключить его командой sudo ufw disable.
Использование пароля
Начнем с инструкции о том, как подключиться к удаленному серверу через SSH по логину и паролю. Это самый простой способ. Хостер предоставляет вам IP-адрес, логин и пароль. Этого достаточно для того, чтобы установить соединение с удаленным сервером.
Подключение на Windows
Моя основная система — Windows. Раньше для подключения к серверу через SSH я пользовался сторонней утилитой PuTTY, потому что в операционной системе не было встроенного компонента. В «десятке» он появился, так что теперь можно подключаться к SSH через командную строку (cmd).
Чтобы включить встроенный в систему OpenSSH:
Теперь разберемся, как подключиться к SSH через cmd. Запустите командную строку и выполните запрос вида ssh root@185.104.114.90.
После выполнения команды клиент SSH предложит добавить устройство в список известных. Введите в командной строке yes и нажмите на Enter. Затем укажите пароль для доступа к серверу. На этом подключение завершено — теперь все команды будут выполняться на удаленной машине, к которой вы подключились.
На версиях младше Windows 10 1809 нет встроенной поддержки протокола OpenSSH. В таком случае понадобится сторонняя утилита. Смотрим, как через PuTTY подключиться по SSH:
Если вы ввели правильные данные, появится окно консоли, в котором нужно указать логин и пароль для подключения к серверу. При первом запуске также отобразится запрос на добавление устройства в список известных.
Подключение на Linux и macOS
Теперь посмотрим, как подключиться по SSH через терминал на Linux. Для этого не требуется установка дополнительных компонентов, все работает «из коробки».
На этом подключение завершено. Теперь все команды, которые вы вводите в терминале, будут выполняться на удаленной машине.
Если IP-адрес или порт указаны неверно, то на экране появится сообщение об ошибке — Connection Refused. Это может также говорить о том, что доступ запрещен брандмауэром на удаленном сервере (если вы его не отключили). Чтобы разрешить подключение через SSH:
Цифра 22 в синтаксисе — номер порта. Если вы используете другой порт, то укажите его явно.
Источник
Работа с SSH и SFTP
SSH — защищенный сетевой протокол. Он позволяет установить соединение по зашифрованному туннелю и управлять удаленным сервером с помощью команд.
Для соединения с сервером используйте:
Способ подключения зависит от установленной на устройстве операционной системы.
PuTTY для Windows
Для соединения по SSH из ОС Windows установите SSH-клиент PuTTY. Он распространяется бесплатно. Скачайте программу с официального сайта и запустите ее.
В списке категорий выберите пункт «Session», в графе «Host name (or IP adress)» введите IP-адрес сервера, где расположен аккаунт, или доменное имя сайта. В блоке «Connection type» отметьте «SSH». Нажмите «Open».
Нажмите «Да» в окне с предупреждением: сервер будет добавлен в список доверенных хостов.
В окне консоли введите логин вашего аккаунта, нажмите «Enter» и укажите пароль для входа в Панель управления. В целях безопасности пароль при вводе не отображается.
Если пароль введен верно, вы увидите следующее:
Терминал в Linux и Mac OS
Подключиться по SSH из операционных систем Mac OS или Linux можно с помощью встроенного приложения «Терминал».
Введите пароль от Панели управления и нажмите «Enter».
Secure Shell в браузере Google Chrome
Secure Shell — дополнение для Google Chrome, выпущенное компанией Google. С его помощью можно подключиться к серверу по SSH из браузера.
Установите дополнение, скачав его из официального интернет-магазина, перезагрузите браузер.
Откройте новую вкладку, перейдите в раздел «Сервисы» и кликните на значок расширения «Secure Shell» — приложение откроется в новом окне.
В поле «username@hostname или текст» укажите логин вашего аккаунта и через символ «@» хост — IP-адрес сервера или домен сайта. Нажмите кнопку «[ВВОД] Подключить».
Укажите пароль, который вы используете для входа в Панель управления и нажмите «Enter». В целях безопасности символы пароля не отображаются.
Готово, соединение установлено!
Использование SSH-ключей
Для подключения к аккаунту по SSH-ключам предварительно генерируем персональную пару ключей — открытый и закрытый. Первый ключ копируем на удаленный сервер, а второй — никому не передаем (только через защищенные каналы).
Вот так ключи можно создать в ОС GNU, Linux и macOS.
Далее задаем имя ключа или оставляем вариант по умолчанию (
/.ssh/id_rsa). Вводим дополнительный пароль – пассфразу – и подтверждаем ее.
Далее копируем SSH-ключи на аккаунт с помощью команды:
где login – логин аккаунта, server – IP-адрес сервера.
Готово! Попробуйте подключиться по SSH к аккаунту хостинга и при авторизации укажите пассфразу.
С помощью SSH можно не только безопасно управлять сервером, но и передавать файлы. Для этой цели был создан отдельный протокол SFTP (SSH File Transfer Protocol).
Принцип его работы похож на FTP, при этом данные передаются по зашифрованному туннелю.
WinSCP для Windows
WinSCP — бесплатный клиент для подключения к серверу по SFTP из ОС Windows. Скачайте WinSCP с официального сайта, установите его на компьютер и запустите.
В выпадающем списке «Протокол передачи» выберите «SFTP». В графе «Имя хоста» введите IP-адрес сервера, где размещен ваш аккаунт, или доменное имя сайта. «Имя пользователя» и «Пароль» укажите те же, что при входе в Панель управления.
Нажмите «Да», чтобы добавить сервер в список доверенных.
Готово, соединение установлено!
Терминал в Linux и Mac OS
Для подключения по SFTP используйте приложение «Терминал».
Запустите программу и введите команду:
sftp username@X.X.X.X
где X.X.X.X — IP-адрес сервера или домен сайта.
Чтобы увидеть список доступных для SFTP команд, введите help или ? и нажмите «Enter».
Источник
Подключение с помощью SSH
С помощью OpenSSH можно подключиться к тестовым устройствам и виртуальным машинам фабрики, а также выполнять команды или передавать файлы. OpenSSH (Secure Shell) — Стандартный протокол для безопасного подключения терминала.
Вы можете использовать SSH для подключения ко всем образам ОС фабрики.
Что необходимо для подключения с помощью SSH
Чтобы подключиться к устройству с помощью SSH, вам потребуется:
Запуск сервера SSH
На изображениях, содержащих манифест компонента Виндовскоренонпродуктионфм, можно добавить WCOS_OPENSSH_AUTOSTART компонент для автоматического запуска сервера SSH.
Подключение с использованием имени и пароля
Чтобы иметь возможность подключиться с помощью имени пользователя и пароля, необходимо сначала настроить имя пользователя и пароль. Настройка имени пользователя и пароля SSH зависит от продукта фабричной ОС, который вы используете.
Имя пользователя и пароль в фабричной ОС
Заводская ОС включает встроенную учетную запись администратора, которую можно использовать для подключения по протоколу SSH:
Вы можете настроить имя пользователя и пароль с помощью SSHUsername SSHPassword параметров и в платформе настройки параметров.
Соединение с помощью пары ключей
Если у вас есть пара ключей для SSH (Дополнительные сведения см. в документации клиента SSH), ее можно использовать вместо имени пользователя и пароля.
Вам потребуется открытый ключ в формате OpenSSH. Запустите ssh-keygen.exe на техническом компьютере, чтобы создать его. ssh-keygen входит в состав Windows.
Создание пары ключей
В командной строке на техническом компьютере выполните команду, ssh-keygen.exe чтобы создать общедоступную и закрытую пару ключей. При выполнении этой команды можно сохранить ключи в расположении на компьютере, а также задать пароль:
Эта команда выводит запрос на ввод следующих сведений и предоставляет выходные данные, аналогичные приведенным ниже.
Перейдите в папку, в которой вы сохранили ключи, вы увидите закрытый ключ, у которого нет расширения и открытый ключ с расширением PUB.
Откройте файл открытого ключа в текстовом редакторе. Открытый ключ не является конфиденциальным. Вот как они выглядят:
Скопируйте содержимое открытого ключа в буфер обмена.
Подключение на устройство вкос с помощью портала устройств. Навеигате на вкладку SSH в левой области и скопируйте открытый ключ из буфера обмена в поле открытый ключ для нужного пользователя.
Подключение
После настройки проверку подлинности можно подключиться к устройству ОС фабрики.
Откройте окно командной строки на техническом компьютере.
Подключение на устройство:
Где user — это имя пользователя, выбранное при настройке SSH, а 192.168.1.2 — IP-адрес устройства вашей ОС фабрики.
Где C:UsersUser/.ssh/id_rsa идентификатор закрытого ключа user — это имя пользователя, выбранное при настройке SSH, а 192.168.1.2 — IP-адрес устройства вашей ОС фабрики.
Введите пароль для пользователя, если вы подключаетесь с именем пользователя и паролем, или если вы настроили ключ так, чтобы он затребовал пароль.
Безопасный FTP
Вы можете использовать SSH для передачи файлов по протоколу SFTP. Если вы включили SSH на устройстве ОС фабрики, вы также сможете подключиться по протоколу SFTP.
Если вы предпочитаете программу командной строки, вы можете использовать sftp и scp :
указанные выше служебные программы включены в Windows и могут запускаться путем запуска командной строки.
Источник