Авторизация на сервере и хостинге по ключу без ввода пароля

Привет, йуные программисты. Сегодня расскажу о такой вещи, как SSH авторизация по ключу. С данной технологией я познакомился год назад на одном из проектов компании, был впечатлен и теперь активно сам использую. Зачастую, правда, сталкиваюсь с непониманием со стороны других разработчиков, мол «Зачем это нужно?!».

Скажу сразу: я глубоко не админ, поэтому буду излагать так, как понимаю сам. Привычная всем нам авторизация состоит из связки «логин – пароль». Авторизация по ключу подразумевает связку «логин – ключ», передаваемую серверу. Тысяча чертей, я кэп-очевидность!

Что такое SSH-ключ и как его создать

На самом деле речь идет о связке из двух ключей: один хранится у вас на рабочей машине, второй хранится на сервере, и они взаимно-однозначны. Первый ключ называется Private Key (приватный), второй – Public Key (публичный). Приватный ключ представляет собой текстовый файл с .ppk расширением и может быть использован на неограниченном количестве машин. Как правило, у каждого разработчика свой приватный ключ.

Для генерации подобной связки ключей нам потребуется программка PuTTYgen.exe (PuTTy Key Generator), которую вы должны были скачать, когда настраивали среду разработки. Запускаем программу, выбираем нужные опции и дрыгаем мышкой в конвульсиях для генерации случайного числа.

Генерация ключа с 
PuTTy Key  Generator
Public & Private Key

В самом верхнем отмеченном окне мы получаем Public key, который именно в таком виде и будем через несколько минут закидывать на сервер. Но перед этим сохраняем оба ключа себе на компьютер в укромное место, да так, чтобы не потерялись.

Настройка сервера

Я, надеюсь, у вас уже есть свой сервер или хостинг? Если нет, то, как друпалер до мозга и костей, я рекомендую IT-Patrol, который даже на минимальном тарифном плане предоставляет доступ по SSH. Для примера, я продолжу повествование на примере этого хостинга.

  1. Авторизируемся на сервере по предоставленной связке «логин – пароль» и переходим в предоставленную нам домашнюю директорию - /home/u1234;
  2. Создаем директорию .ssh c правами «700»;
  3. В директории .ssh создаем файл authorized_keys с правами «600»;
  4. Закидываем все необходимые Public keys в authorized_keys по принципу: одна строка – один ключ.

Для любителей все делать через консоль:

  • cd ~ && ls -la | grep .ssh (проверяем наличие папки SSH конфигов домашнем каталоге);
  • cd ~ && mkdir .ssh (в случае отсутствия папки);
  • cd ~ && chmod 700 .ssh;
  • ssh-keygen -i -f ~/public.pub >> ~/.ssh/authorized_keys (импортируем закаченный ранее файл публичного ключа в authorized_keys файл;
  • ~ && chmod 600 .ssh/authorized_keys.

Настройка клиента

В качестве клиента мы будем использовать программу WinSCP. Настроить соединение проще простого. Обратите внимание, что пароль отсутствует:

Настройка WinSCP для авторизации по ключу

С этого момента авторизация на вашем сервере будет происходить по SSH-ключу. А теперь самое приятное – запуск консольного окна PuTTy без ввода пароля:

Запуск PuTTy без ввода пароля

Теперь подведем итог, в чем же профит от того, что я здесь расписал:

  • вам не надо запоминать какие-то пароли;
  • быстрое и удобное предоставление доступа к серверу другим разработчикам;
  • отсутствие необходимости вводить пароль в консоли PuTTy при авторизации.

Собственно на это все. Не заморачивайтесь с паролями, становитесь более продвинутыми!

Комментарии

Аватар пользователя Саша
Саша

Супер! Очень удобно, справился не сразу правда. Советую через консольку делать. Тогда все гуд. А я если ручками все (без консоли), то сервер просит ввести пароль :)

Аватар пользователя Aziz
Aziz

Красава!!!

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

 888       888      .d8888b.   888    d8P  
888 888 d88P Y88b 888 d8P
888 888 Y88b. 888 d8P
888 888 888888 "Y888b. 888d88K
888 .88P 888 "Y88b. 8888888b
888888K 888 "888 888 Y88b
888 "88b Y88b. Y88b d88P 888 Y88b
888 888 "Y888 "Y8888P" 888 Y88b


Зарегистрируйтесь для добавления материалов без проверки.