Close

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

Вступление

Внимание: Эта статья написана для пользователей ОС Windows. 

В этой статье, мы научимся подключаться к облачному серверу DigitalOcean по SSH, создадим ключи SSH с помощью генератора ключей «PuTTYgen», сохраним ключи в агенте «Pageant», и подключимся к серверу по безопасному протоколу SFTP.

SSH (англ. Secure Shell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.SSH позволяет безопасно передавать в незащищённой среде практически любой другой сетевой протокол. Таким образом, можно не только удалённо работать на компьютере через командную оболочку, но и передавать по шифрованному каналу звуковой поток или видео (например, с веб-камеры). Также SSH может использовать сжатие передаваемых данных для последующего их шифрования, что удобно, например, для удалённого запуска клиентов

Ключи SSH служат средством идентификации вас при подключении к серверу SSH с использованием криптосистемы с открытым ключом и аутентификации вызов-ответ. Одним из непосредственных достоинств этого метода перед традиционной идентификацией с помощью пароля является то, что вы можете быть авторизованы на сервере без регулярной необходимости отсылать ваш пароль через сеть. Даже если кто-либо будет прослушивать ваше соединение, у него не будет возможности перехватить и взломать ваш пароль, поскольку фактически он никогда не передается. Также использование для идентификации ключей SSH устраняет риск, связанный с брут-форс (brute-force) атаками, за счет существенного уменьшения шанса атакующего угадать правильные учетные данные.
Идентификация при помощи ключей SSH предоставляет дополнительную безопасность, а также может быть более удобным способом, чем традиционная идентификация при помощи пароля. При использовании вместе с программой, называемой агентом SSH, ключи SSH могут подключать вас к серверу или нескольким серверам без необходимости помнить и вводить ваш пароль отдельно для каждой системы.

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

Когда у сервера SSH есть ваш открытый ключ в файле, и он видит, что вы запрашиваете соединение, он использует этот открытый ключ, чтобы создать и отправить вам т.н. вызов. Этот вызов является чем-то вроде зашифрованного сообщения, на которое должен поступить соответствующий ответ, чтобы сервер предоставил вам доступ. Безопасным это сообщение делает тот факт, что оно может быть прочитано только кем-то, у кого есть закрытый ключ. Открытый ключ может быть использован для зашифровки сообщения, но расшифровать то же самое сообщение он не сможет. Только вы, держатель закрытого ключа, будете иметь возможность корректно принять вызов и создать соответствующий ответ.

Этот этап вызов-ответ проходит незаметно для пользователя. До тех пор, пока у вас есть закрытый ключ, который обычно хранится в каталоге ~/.ssh/, ваш клиент SSH будет иметь возможность отправить правильный ответ серверу.

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

1. Создание ключа SSH

Для создания ключа, я воспользуюсь программой Putty, которую можно скачать здесь

Точнее, мне потребуется скачать три програмки:

  • PuTTYgen — генератор ключей
  • Pageant — агент для хранения ключей
  • PuTTY — ssh-клиент

Генератор ключей PuttyGen.

Запускаю PuTTYgen выбираю «Type of key to generate» SSH-2 RSA и 2048-битный ключ. Нажимаю Generate.

https://zygar.ru/

Следуя указаниям, хаотично перемещаю мышку.

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

Придумаем сложный пароль и сохраним ключи public и private.

digitalOceanSSH1

Private key сохраняется с расширением .ppk. Он будет использоваться Pageant в дальнейшем.

Key fingerprint — отпечаток ключа.
Key comment — комментарий к ключу, я обычно указываю машину, на которой это ключ используется.
Key passphrase — парольная фраза к приватному ключу.
Confirm passphrase — подтверждение парольной фразы.

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

Переходим на сайт DigitalOcean, заходим в свой аккаунт и в меню установки и выбираем «SSH Keys»

add_ssh_keys

Большая кнопка «добавить ключ» ждет

add_ssh_button

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

paste_key

Ключ готов! Теперь, создавая сервер (Droplet), мы можем указать наш ключ. О том как создать Droplet, читайте здесь

2. Агент для хранения ключей Pageant.

Здесь просто. Add key -> Выбираем ключ, указываем парольную фразу (Key passphrase), которую создали в PuttyGen. Чтобы посмотреть ключи, можно выбрать пункт View keys.

3. Настройка Putty.exe

Теперь запускаем PuTTY.exe. Вначале произвожу настройки и сохраняю как Default settings, затем для каждого droplet отдельно. Будет меняться только путь.

Переходим во Вкладку Session и устанавливаем IP нашего droplet, устанавливаем Connection type: SSH.

enter_ip

Далее, Вкладка Session->Logging, отмечаю галочкой Printable output. В поле Log file name указать logs\&H_&Y-&M-&D-&T.log, убираю галочку Flush log file frequently.Таким образом, указываю, что хранить логи нужно в папке logs, рядом с PuTTY.exe, при этом имена .log файлов не должны повторяться и следовательно перезаписываться.

Вкладка Window->Translation. Выбираю в списке Remote character set UTF-8, чтобы не было проблем с кодировкой.

В Connection->Data указываем имя пользователя, по умолчанию «root»

data_category

enter_user

В Connection->SSH->Auth проверяю стоит ли галочка напротив Attempt authentication using Pageant и указываю путь к приватному ключу в графе Private key file for authentication.

browse_keys

Не забываем сохранить все изменения на вкладке Session -> сохранить, чтобы указанные настройки были по-умолчанию.

enter_session

Теперь можно подключаться. Кликаем open.

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

Откроется консоль для общения с нашим сервером на DigitalOcean. Посредством консоли PuTTY мы можем:

start, stop, restart application
tail all log files
list available environment variables
remove files / directories
list files / directories
list running applications
kill running applications
interactive MySQL shell
interactive MongoDB shell
interactive PostgreSQL shell
list disk usage

Теперь, когда мы создали SSH ключи и настроили доступ к droplet по SSH, можно настроить клиент для полноценной, удобной работы с нашими файлами: загрузки, скачивания и т.д. Я перепробовал различные клиенты под Windows и остановился на WinSCP. Его установка не вызывает трудности и использовать довольно удобно.

Подарок от DigitalOcean

DOCUPON

получить $10

Если вам более не хватает мощности обычного хостинга и вы задумываетесь о переходе на облачный хостинг с мировым именем, используйте этот купон  для получения $10 от DigitalOcean в подарок. Акция ограничена. В настоящее время, есть тарифный план от $5 в месяц, плюс скидки при оплате за целый год.


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

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

Автор: Stas Zygar

Привет! С наступившим новым годом! Всем счастья.