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

Привет, йуные программисты. Сегодня расскажу о такой вещи, как 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

Красава!!!

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

           8888888888                     
888
888
.d88b. 8888888 .d8888b 88888b.
d88P"88b 888 d88P" 888 "88b
888 888 888 888 888 888
Y88b 888 888 Y88b. 888 d88P
"Y88888 8888888888 "Y8888P 88888P"
888 888
Y8b d88P 888
"Y88P" 888
Зарегистрируйтесь для добавления материалов без проверки.