Изначально статья вообще не планировалась. Хотел написать коротенькую шпаргалку. Но слово-за слово и "Остапа понесло"... И пост, превратился в полноценную статью по созданию ключа, созданию виртуального сервера на timeweb, и подключению к нему.
Поехали!
Первым делом проверить, установлен ли на компе пакет ssh командой
ssh -V
Если установлен, то программа вернет версию ssh. Значит и генератор ключей тоже установлен. Далее запускаем генератор ключей командой:
ssh-keygen -t rsa -b 2048 -C "TimeWeb Machine" -f timeweb
Программа спросит кодовое слово (словосочетание).
Кодовая фраза просто шифрует ключ локально. Злоумышленник, имеющий доступ к вашей системе, не сможет прочитать закрытый ключ, потому что он зашифрован. (Хотя они могут установить кейлоггер.) Например, если ваш ноутбук украден, ваш ssh-ключ может оставаться в безопасности, если у вас надежная кодовая фраза. Даже при использовании довольно слабой кодовой фразы (если она не является тривиальной) у вас будет некоторое время для отзыва ключа и перехода на новый, прежде чем злоумышленники смогут его взломать.
Это необязательно, потому что вы можете принять на себя риск того, что она не будет зашифрована в хранилище.
Или, возможно, у вас включено шифрование диска, которое смягчает некоторые из тех же атак (но не все, например: вредоносное ПО по-прежнему может украсть ключ даже с помощью шифрования диска; с другой стороны, украденный ноутбук по-прежнему безопасен, если его не украли во время работы с ключом в памяти).
Так как я не указал куда именно сохранить данный ключ, то он сохранил его в текущую (домашнюю директорию).
Один ключ публичный timeweb.pub его нужно будет разместить на сервере, в настройках доступа. А второй останется на компе. Обычно все ключи хранятся в директории ~/.ssh/ куда, собственно, я эти два ключа и перемещу...
Ключ можно посмотреть командой: cat ~/.ssh/timeweb.pub
Далее следует регистрация на TimeWeb. Тем кто обучается на skillbox предоставляется бесплатный промокод на три месяца (видимо за эти три месяца нужно закончить с python advanced, чот сомнительно...). Для этого нужно написать письмо в службу поддержки hello@skillbox.ru со словами:
Хочу промокод на VDS от Timeweb Cloud
На что мне пришел ответ:
Ладно, завтра допишу статью и доразбираюсь с регистрацией на TimeWeb, тем более я ее уже однажды проходил, когда заканчивал курс Framework Django. Там тоже давался промокод на три месяца.
Итак, наступило завтра, пришел я утром на работу и думаю - надо с самого ранья заняться виртуальным сервером и подключением к нему. А так же созданием ключей для рабочего компа.
Сунулся в почту, в надежде найти промокод для оплаты ТаймВеб сервера на три месяца - пропало письмо, скриншот которого выше. Где?! Оказалось оно уже лежит в спаме и там таки пришел промокод:
Регистрируюсь на таймвеб от имени гитлаб. Ввожу промокод.
Создаю сервер на базе ArchLinux, потому что у меня арч-подобная система - Manjaro. При регистрации сервера нужно выключить бэкап. Иначе денег промокода не хватит на три месяца.
Вроде с хостингом разобрался. Теперь заново нужно повторить те же самые действия, что были сделаны выше по созданию ключей RSA. Компьютер то уже рабочий, а не домашний. На этот раз я попробую ввести passphrase. И сразу попробовал занести файлы ключей в папку .ssh - не получилось:
Точно, нужно сначала перейти в данную директорию а затем создавать файлы ключей! Семён Семёныч! Но это не точно, я ж еще и забыл указать ключ -b
Сделано! Копирую сей ключ, вставляю его на сервере:
Ну вот ключ на сервер добавлен. Можно попробовать зайти на сервер. Смотрим настройки на главной странице сервера и по ним уже входим:
Открываем терминал, и пробуем войти:
С первого раза у меня не получилось, сервер попросил root пароль, я подумал это passphrase которую я вводил при генерации ключа, оказалось - я был не прав. Ему надоть именно root-пароль, его скопировать можно из той же главной страницы сервера.
Вставляется пароль в терминал посредством сочетания клавиш Shift + Ins (пароль в Linux системах при вводе не отображается, поэтому просто жмем Enter).
Вот мы в системе. И первое что нужно сделать это создать пользователя с правами SUDO. Но это уже тема следующей статьи... А пока я просто сделаю обновление системы: