Подключение к виртуальной машине по SSH
Для подключения к виртуальной машине в облаке обычно используется протокол SSH. Если вы работаете в операционной системе Linux/MacOS то в них инструмент для подключения по SSH установлен по-умолчанию.
Чтобы подключиться, вам нужно запустить терминал и ввести команду:
ssh root@189.189.189.189 -p 22
- root — имя пользователя;
- 189.189.189.189 — IP вашей виртуальной машины;
- «-p 22» — порт, к которому нужно подключиться.
Если же вы используете ОС Windows, то потребуется стороннее приложение — например, PuTTY. Установив программу, вам нужно будет внести IP и порт подключения. Имя пользователя не задается, его можно будет внести уже при подключении:
После запуска подключения, интерфейс на любой операционной системе будет выглядеть одинаково — вы попадете в терминал. Первое что вам нужно будет сделать, так это ввести пароль от пользователя root. Этот пароль вы задавали при создании виртуальной машины. После чего вы подключитесь и будете готовы управлять своей ВМ:
Как по ssh подключится к виртуальной машине?
Виртуалка — CentOS. Работает через virtualBox. Не могу понять как мне настроить подключение между компом и виртуалкой. Есть другая виртуалка(устанавливал не я) , к ней я могу подключаться так:
Как мне реализавать точно так же, но на новой виртуалке? В настройках virtualBox -> Правила проброса портов, установлено:
Протокол: TCP Порт хоста: 13577 Порт гостя: 22
Отслеживать
задан 20 мая 2019 в 9:03
Dmitry Filippov Dmitry Filippov
623 4 4 серебряных знака 23 23 бронзовых знака
Именно таким правилом проброса портов и реализовать. Всё равно не подключается что ли? Какую ошибку ssh пишет? А в виртуалке ssh-сервер вообще запущен?
20 мая 2019 в 9:11
@andreymal, не подключается просто. Никакой ошибки. А как узнать, запущен или нет?
20 мая 2019 в 9:12
«Не подключаться просто» тоже может по-разному. Зависает, ничего не делая, или молча завершается? А если ssh -v или ssh -vv попробовать и логи почитать?
20 мая 2019 в 9:13
Недавно занимался таким же, там далеко не локалхост нужен для подключения, у вм свой ип и необходимо подключаться иначе, помню я на стаке и нашел ответ. Если никто не даст ответ к тому времени как я прийду, то я вам отвечу. UPD: Сейчас напишу гайд.
20 мая 2019 в 9:14
@andreymal, Connction esstablished, key_load_public: No such file or directory . Зависает, ничего не делая
20 мая 2019 в 9:21
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Бродил по поисковику в надежде найти информацию по подключению по SSH на свой сервер Ubuntu. Установив пакет SSH и проверив его работоспособность понял что моих знаний не хватит чтобы пробросить связь между VM и моей WINDOWS системой.
В итоге я нашёл способ как это сделать но первоисточник я не сохранил, поэтому прийдётся написать всё с нуля.
Первое что необходимо сделать — настроить сам VM на проброс портов.
Открываем настройти VirtualBox:
Создаём новую сеть, даём любое название и переходим во вкладку «проброс портов»:
Затем необходимо ввести следующие значения:
- Имя вашего правила (SSH).
- Протокол (TCP).
- Адрес хоста — заполнять не нужно.
- Порт хоста — ваш порт по которому будете подключаться на машину по SSH.
- Адрес гостя (127.0.1.1).
- Порт гостя (22) — стандартный порт для подключения по SSH.
После всех действий необходимо перейти в настройки машины (сервера) и выставить в «тип подключения» — сетевой мост, и выбрать соответствующее устройство, в моём случае это кабельный интернет:
После всех манипуляций необходимо зайти на сам сервер, в моём случае это Ubuntu 16.04 на борту у которого установлен пакет SSH.
Переходим на сервер, авторизуемся и пишем команду: ifconfig Итого получаем IP такого формата: 192.168.0.102 , это и есть необходимый IP адрес для подключения по SSH.
Подведём итог по настройке.
В пробросе портов мы ввели порт: 1337, IP адрес сервера мы получили со значением: 192.168.0.102, Имя пользователя можно настроить на сервере, в моём случае я отключил защиту от подключения ROOT пользователя и могу подключаться под именем root.
Теперь открываем Putty/Powershell/etc и вводим полученные значения.
После ввода получаем ответ от сервера о успешном подключении и необходимости ввести пароль.
Вот конечный результат:
Я не знаю насколько правильно я всё делал, но у меня получилось так завести SSH подключение к моему серверу и перепробовав многочисленные ответы на разных сайтах я выбрал именно этот, поэтому получится может не у каждого (смотря какие руки).
Если есть замечания или вопросы прошу отписать в комментариях.
SSH. Подключиться к виртуальной машине по SSH
SSH-протокол — сетевой протокол, предназначенный для защищённого удаленного доступа к операционной системе и передачи данных. Для подключения по SSH удостоверьтесь, что в настройках файрвола установлено соответствующее правило для входящего трафика.
- Генерация SSH-ключей в Windows 7/8
- Генерация SSH-ключей в Windows 10, Linux OS, Mac OS
- Генерация 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, перейдите к шагу №6.
В 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:\Users\username\.ssh\id_rsa»»: — для подключения с помощью ключа.
Имя пользователя, указано справа от кнопки Открыть консоль.
IP-адрес вашей виртуальной машины.
Важно! Если вы создали виртуальную машину только с приватным интерфейсом, создайте плавающий IP-адрес и используйте его при подключении к ВМ по SSH.
Путь к файлу с приватным ключом в вашем локальном хранилище.
Ключ должен быть в формате .pem.
7. Утилита предложит добавить устройство в список известных, напишите «yes», чтобы добавить, или «no», чтобы не добавлять. Нажмите Enter.
8. (Пункт только для тех, кто подключается с помощью пароля) введите пароль, который вы задали при создании машины.
9. Вы подключились к виртуальной машине.
Как подключиться к Виртуальной машине с Linux?
Для облачных образов обычно используются типовые логины (username) ubuntu, debian, fedora, opensuse, cloud-user.
- Скачайте файл закрытого ключа, который находится в разделе Ключевые пары и имеет формат keyname-username.pem.ppk.
- Настройте сессию в PuTTY:
- Host Name — IP-адрес виртуальной машины.
- Укажите скачанный файл ключа .ppk в разделе Connection > SSH > Auth.
С помощью SSH-клиента встроенного в Windows 10
Клиент SSH установлен по умолчанию в Windows Server 2019, Windows 10 сборки 1809 и более новых билдах.
Для облачных образов обычно используются типовые логины (username) ubuntu, debian, fedora, opensuse, cloud-user.
- Скачайте файл закрытого ключа, который находится в разделе Ключевые пары и имеет формат keyname-username.pem.
- Для подключения используйте в командной строке или powershell команду ssh -i keyname-username.pem username@ip_host , например, ssh -i C:\Users\YourUserName\keyname-username.pem ubuntu@194.135.112.207 .
Подключение из MacOS
- Скачайте файл закрытого ключа, который находится в разделе Ключевые пары и имеет формат keyname-username.pem .
- Запустите приложение Terminal.
- Измените права на файл ключевой пары, с помощью команды chmod 600 полный_путь_к_файлу/keyname-userename.pem .
- Подключитесь к серверу через SSH, помощью команды ssh -i полный_путь_к_файлу/keyname-username.pem -p 22 username@111.11.111.111 , где:
- username — это название дистрибутива, например, ubuntu ;
- 111.11.111.111 — IP-адрес Виртуальной машины.
Подключение из Linux
Для облачных образов обычно используются типовые логины (username) ubuntu, debian, fedora, opensuse, cloud-user.
- Скачайте файл закрытого ключа который находится в разделе Ключевые пары и имеет формат keyname-username.pem.
- Для подключения используйте команду в терминале ssh -i путь_до_файла_ключа username@ip_host .
Файл приватного ключа должен быть доступен на чтение и запись только для пользователя-владельца. Для этого измените права доступа к файлу выполнив команду в терминале chmod 600 keyname-username.pem .