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

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

  • автор:

Подключение к виртуальной машине по 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.

putty_gen.png

Важно! Во время генерации ключа водите курсором в поле «Key» до тех пор, пока ключ не появится в поле.

6. В поле «Key passphrase» введите надёжный пароль.

7. Подтвердите пароль в поле «Confirm passphrase».

8. Нажмите кнопку Save private key и сохраните закрытый ключ.

___________.png

Внимание! Никогда не передавайте закрытый ключ и пароль сторонним лицам.

9. Нажмите Save public key и сохраните открытый ключ в удобном для вас месте.

10. Вы всегда можете открыть и скопировать сохранённые ключи при помощи приложения «Блокнот».

_______________.png

Генерация 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 для сохранения ключа без пароля.

______________________.png

7. Ключ создан в директории по умолчанию или в той, которую вы прописали.

____________.png

8. Публичная часть ключа будет сохранена в файле «.pub». Используйте его для последующего добавления к виртуальной машине. Файл можно открыть в текстовом виде в приложении «Блокнот».

Генерация SSH-ключей в личном кабинете сервиса Облако

Для создания SSH-ключа из личного кабинета следуйте описанным ниже шагам.

1. В личном кабинете перейдите в раздел Ключи SSH.

2. Нажмите Сгенерировать ключ.

436bffdec3efef7fc5437a295a522c9e.png

3. Введите название ключа и нажмите Создать SSH ключ.

Важно! Допускается использование символов только латинского алфавита, нижнего подчеркивания, пробелов и точек. Длина имени должна быть от 3 до 63 символов.

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

5. Для просмотра закрытого ключа найдите его на устройстве и откройте с помощью приложения «Блокнот».

Добавление SSH-ключей в личном кабинете сервиса Облако

Чтобы добавить уже созданный SSH-ключ в личный кабинет:

1. В панели управления сервиса Облако перейдите в раздел Ключи SSH.

2. Нажмите Добавить SSH ключ.

9dc42089b427d6cfcb96f7a8e1d0d5a3.png

3. В поле «Содержимое ключа SSH» вставьте публичную часть SSH-ключа.

4. Задайте имя ключа в поле «Имя».

5. Нажмите Добавить SSH ключ.

cfa24ee280e8c5bb5b37a39b35e74bed.png

Ключ появится в списке SSH-ключей.

Удаление SSH-ключей в личном кабинете сервиса Облако

1. Выберите SSH-ключ, который нужно удалить.

2. Нажмите напротив него на знак ···.

3. Выберите Удалить.

Генерация и добавление SSH-ключей при создании виртуальной машины

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

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

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

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

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

2. При нажатии на кнопку Сгенерировать SSH ключ, откроется диалоговое окно, введите имя ключа для идентификации его в системе.

Публичный ключ автоматически добавится к виртуальной машине, а приватный скачается на ваше устройство в формате .pem.

После добавления или генерации нового SSH-ключа ключи будут появится в разделе Ключи SSH.

dbc55ff1d15edb6adb1ed21e8fafc1ff.png

Подключение с помощью пароля. Подготовка

Для подключения по SSH с помощью пароля вам нужно указать пароль во время создания машины.

Добавление пароля

При создании виртуальной машины в пункте Дополнительные возможности активируйте опцию Пользовательские данные. Откроется окно, куда можно вписать скрипт для обработки cloud-init агентом, запущенным на виртуальной машине.

_______________________________________.png

Впишите в поле код:

#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 адрес» в разделе Виртуальные машины.

8e84563dfe10615aee5bf647136efc5e.png

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

3. В поле «Port» установите «22» — стандартный порт для подключения по SSH.

4. Далее для поля «Connection type» задайте значение SSH.

5. (Пункт только для тех, кто подключается с помощью SSH-ключа) в правой части экрана перейдите в Connection SSH Auth.

6. (Пункт только для тех, кто подключается с помощью SSH-ключа) нажмите Browse.

browse.png

7. (Пункт только для тех, кто подключается с помощью SSH-ключа) выберите файл с приватным ключом для виртуальной машины в формате .ppk.

Важно! Если ваш приватный ключ сохранен в формате .pem, конвертируйте его в формат .ppk, как описано в статье «Конвертировать SSH-ключ из формата PEM в PPK».

8. Нажмите Open. Откроется консоль.

login_as.png

9. В строке «login as» введите имя пользователя, выданное вам при создании виртуальной машины. Оно находится в меню виртуальной машины, там стоит надпись вида «[логин]@[IP машины]. Чаще всего логин совпадает с названием ОС. Например, для машины ниже это «ubuntu».

21d14b5a0de01b183f860d86aeaab4b1.png

10. (Пункт только для тех, кто подключается с помощью пароля) введите пароль, заданный вами при создании машины.

mceclip0.png

11. Нажмите Enter.
12. Вы подключились к виртуальной машине.

mceclip0.png

Подключение по SSH с Windows 10, Linux OS или Mac OS

Внимание! Если вы используете Linux OS или Mac OS, перейдите к шагу №6.

В Windows 10 есть встроенный клиент OpenSSH, который позволяет получать доступ к серверу через консоль так же, как и на Linux OS. По умолчанию этот компонент не активирован.

Для его установки:

1. Перейдите в меню Параметры Windows.

_________.png

2. Перейдите в раздел Приложения, нажмите Дополнительные возможности.

__________________________.png

3. В списке найдите OpenSSH Client и нажмите для раскрытия подробного описания.

_______.png

4. Нажмите Установить.

_________________.png

5. Дождитесь завершения установки. После того, как OpenSSH Client будет установлен, перезагрузите компьютер для корректного применения настроек. Для командной строки станет доступна утилита SSH.

6. Откройте командную строку/терминал и введите команду со своими значениями:

«ssh username@192.168.1.92» — для подключения с помощью пароля;
«ssh username@192.168.1.92 -i «C:\Users\username\.ssh\id_rsa»»: — для подключения с помощью ключа.

Имя пользователя, указано справа от кнопки Открыть консоль.

21d14b5a0de01b183f860d86aeaab4b1.png

IP-адрес вашей виртуальной машины.

Важно! Если вы создали виртуальную машину только с приватным интерфейсом, создайте плавающий IP-адрес и используйте его при подключении к ВМ по SSH.

Путь к файлу с приватным ключом в вашем локальном хранилище.

Ключ должен быть в формате .pem.

7. Утилита предложит добавить устройство в список известных, напишите «yes», чтобы добавить, или «no», чтобы не добавлять. Нажмите Enter.

yes.png

8. (Пункт только для тех, кто подключается с помощью пароля) введите пароль, который вы задали при создании машины.

mceclip1.png

9. Вы подключились к виртуальной машине.

Как подключиться к Виртуальной машине с Linux?

Для облачных образов обычно используются типовые логины (username) ubuntu, debian, fedora, opensuse, cloud-user.

  1. Скачайте файл закрытого ключа, который находится в разделе Ключевые пары и имеет формат keyname-username.pem.ppk.
  2. Настройте сессию в 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.

  1. Скачайте файл закрытого ключа, который находится в разделе Ключевые пары и имеет формат keyname-username.pem.
  2. Для подключения используйте в командной строке или powershell команду ssh -i keyname-username.pem username@ip_host , например, ssh -i C:\Users\YourUserName\keyname-username.pem ubuntu@194.135.112.207 .

Подключение из MacOS

  1. Скачайте файл закрытого ключа, который находится в разделе Ключевые пары и имеет формат keyname-username.pem .
  2. Запустите приложение Terminal.
  3. Измените права на файл ключевой пары, с помощью команды chmod 600 полный_путь_к_файлу/keyname-userename.pem .
  4. Подключитесь к серверу через 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.

  1. Скачайте файл закрытого ключа который находится в разделе Ключевые пары и имеет формат keyname-username.pem.
  2. Для подключения используйте команду в терминале ssh -i путь_до_файла_ключа username@ip_host .

Файл приватного ключа должен быть доступен на чтение и запись только для пользователя-владельца. Для этого измените права доступа к файлу выполнив команду в терминале chmod 600 keyname-username.pem .

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *