Putty ssh keys authorization linux

SSH авторизация по ключу через PuTTY

На сегодняшний день набирает обороты практика аутентификации к SSH-серверу по ключу, в этом есть несколько преимуществ:

  • Удобство в использовании. У вас может быть несколько серверов и один ключ, не нужно всякий раз вводить пароль от нужного сервера, что сэкономит время.
  • Это безопасно. Вы сможете отключить аутентификацию по паролю и ssh будет защищён от брутфорса.

В это статье мы настроим SSH авторизации на сервере CentOS 7 по ключу, и настроем подключение через ключ утилиту PuTTY.

Генерация ключа

Для генерации ключа будем использовать утилиту PuTTYgen. После запуска выбираем тип ключа для генерации — SSH-2 RSA, и длину ключа — 2048 бит. После чего нажимаем Generate и крутим мышкой по окну пока не закончится генерация ключа.

  • Key comment — комментарий к ключу.
  • Key passphrase — парольная фраза к приватному ключу. (Не обязательно к заполнению)
  • Confirm passphrase — подтверждение парольной фразы.

Если вы хотите обезопасить себя по максимальному вы можете задать пароль для защиты приватного ключа в полях Key Passphrase и Confirm Passphrase. Но при каждом входе у вас будет запрашивать пароль который вы ввели. Это обезопасит вас если ваш приватный ключ будет похищен.

Далее сохраняем public key и private key. Приватный ключ мы будем использовать для подключения к серверу, а вот публичный ключ надо будет передать на удаленный сервер которому мы будем подключаться.

Обратите внимания на то как был сгенерирован ваш публичный ключ.

Лично у меня он был сгенерирован не совсем верно, вот пример public_key в дальнейшем при подключении через PuTTY с таким ключом могут возникнуть ошибка Server refused our key.

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

Установка публичного ключа на сервере

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

Ключ с копировался, теперь нужно добавить его в

/.ssh/authorized_keys. Далее логинемся еще раз по паролю, через PuTTY и выполняем:

Далее нужно проверить настройки нашего SSH сервера, сами настройки лежат в файле /etc/ssh/sshd_config:

Теперь нам надо будет перезапустить SSH сервер:

Теперь мы можем подключиться к серверу по ключу или паролю.

Но мы можем вообще запретить подключатся к SSH серверу по паролю указав в файле /etc/ssh/sshd_config.

После чего не забываем заново перезапустить SSH сервер.

Настройка и подключения PuTTY

Теперь все что нам осталась это создать новый сеанс и настроить его подключения к SSH серверу по ключу.

Создаем новый сеанс пиши на IP Адрес к серверу.

Далее, мы выбираем меню категорию SSH и там выберем под категорию Auth

В поле Private key file for authentication загружаем наш приватный ключ.

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

Остаётся только проверить правильность аутентификации к SSH серверу по ключу. Запустите PuTTY и подключитесь к своему серверу. Если вы при создании, ключа заполнили поле Key Passphrase и Confirm Passphrase то вас запросит вести этот пароль. Если же всё настроено неправильно, то будет выдано сообщение об ошибке и предложено ввести пароль.

Источник

Блог системного администратора Windows/Linux/FreeBSD

Авторизация по ключам в Putty (ssh)

В этой статье будет описан процесс авторизации по ключу в putty для ssh-сессий.
Делается это для того, чтобы не вводить постоянно пароль.
Первым делом скачивается набор утилит Putty. Нам понадобится PuTTY.exe, puttygen.exe, PSFTP.exe, Pageant.exe
Открываем puttygen.exe. Тут будет происходить генерация ключей.
Выбираем «Тип ключа для генерации» — SSH-2 RSA, силу ключа — 2048. Жмем генерировать. Видим следующее:

Читайте также:  Change starting windows message

Key comment/Комментарий — вводим комментарий к ключу.
Key passphrase/Парольная фраза — парольная фраза к приватному ключу. Её нужно будет вводить при подключении или же хранить в памяти Pageant.exe. Можно оставить пустой.
Confirm passphrase — подтверждение парольной фразы.

Далее сохраняем открытый ключ и личный ключ. Приватный ключ нужно сохранить в укромном месте, а публичный ключ нужно будет закидывать на удаленный сервер, с которым настраиваем авторизацию. Для этого можете использовать любые удобные вам средства. В статье будем использовать PSFTP из комплекта putty.
Запускаем PSFTP.exe. Логинимся к вашему серверу:

Логин и пароль как и от ssh.
Копируем публичный ключ на сервер в любую папку:

Готово.
Так как ключ был создан в putty, то его надо «преобразовать» в формат, понятный linux или freebsd. Заодно пересохраним ключи в нужное место.
Логинимся к серверу по ssh.
Переходим в папку со скопированным ключом и выполняем команду:

Если папки .ssh нет, то создайте её с правами 700. Все файлы в этой папке должны иметь права 600.
SSH-демон должен автоматически подхватить все эти дела, теперь перейдем к настройке Putty.

Открываем Putty, вводим параметры подключения к серверу (адрес, порт, имя сеанса), переходим на вкладку SSH-аутентификация:

Указываем путь к приватному ключу.
Возвращаемся к настройкам сеанса, жмем сохранить сеанс. В принципе все готово. При такой настройке вам придется вводить парольную фразу ключа при каждом подключении. Если вам лень это делать, то запустите Pageant.exe, в меню утилиты добавьте нужный ключ и введите один раз парольную фразу. Утилита Pageant сохранит в памяти парольную фразу и при подключении к серверу вводить её не надо. Но, стоит отметить, что при закрытии этой утилиты, все ключи удаляются из памяти и вам снова придется проделывать процедуру добавления ключей в Pageant.

Также возможна обратная операция генерации ключей на сервере и использование этих ключей в putty. Но, об этом в другой раз.

Источник

SSH авторизация по ключам. PuTTy

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

Была цель — упросить авторизацию на сервер используя на windows машине клиент PuTTy. Но, как оказалось, не все так просто и прозрачно. Поискав в интернете инструкции я не нашел ни одной, в которой мне объяснили почему при генерации ключей через PuTTy-gen не получется подключится к linux серверу.

Есть несколько варинатов. Подключение с linux на linux и с windows на linux (используя PuTTy). И два метода генерации ключей — на linux машине, используя openssh и через PuTTy Key Generator.
Все необходимые программы можно скачать https://www.chiark.greenend.org.uk/

sgtatham/putty/latest.html (либо нужный архив целиком)

Немножко теории — приватные и публичные ключи RSA

Для успешной авторизации по ключам, необходимо иметь публичный ключ и приватный ключ. Все ключи на linux машине хранятся в домашнем каталоге пользователя, в папке .ssh «/home/user/.ssh/».

На сервере хранится публичный ключ. Этот ключ имеет запись одной строкой вида
«ssh-rsa AAAABG.. ..+qxQ== rsa-key-20180322»
По умолчанию ключи хранятся в файле authorized_keys. В этом файле могут хранится сразу несколько ключей, просто записываются каждый на строку.
Название файла можно поменять, но тогда нужно это явно указать в конфигурационном файле SSH сервера — /etc/ssh/sshd_config (нужна перезагрузка sshd).
«AuthorizedKeysFile %h/.ssh/authorized_keys»

На клиенте (linux) хранится приватный ключ. Ключ имеет запись вида
——BEGIN RSA PRIVATE KEY——
MIIEoQIBAAKCAQEAjIDrQgbCcRXrGms9kHutJhU6+kopZ1IRca8WalZ/jLr6tyjs
….
….
Hp5ygfYqspTYzGIqsPvYYPMlyg7Jrx8hiEwbbz4Ohpqq6hgvVQ==
——END RSA PRIVATE KEY——

В отличии от публичного ключа, каждый приватный ключ это отдельный файл. При подключении к серверу, клиент ssh проверяет в папке .ssh наличие такого ключа. Название по умолчанию должно быть id_rsa. Если задано другое название или ключ лежит в другой директории, то это нужно указать: ssh user@example.com -i /home/user2/id_rsa2.

Читайте также:  Asus eah4350 silent драйвер windows 10

Важно, права на ключ id_rsa должны быть выставлены 600 (rw——-)

При использовании клиента PuTTy, приватный ключ может иметь любое название его нужно указывать при подключении к серверу. Либо использовать агент Pageant.

Вариант первый: генерируем ключи на linux.

Тут все просто, поможет нам утилита ssh-keygen. Неважно где создавать ключи. Но для примера сделаем это на сервере.

Запускаем утлиту ssh-keygen

Программа спросит куда сохранить ключи и предложит задать пароль. Смело нажимаем два раза enter и получем результат.
Теперь у нас есть два ключа, которые были сохранены в директорию .ssh: id_rsa — приватный ключ и id_rsa.pub — публичный ключ.
Ключи выглядят в виде текста. По этому их можно легко скопировать и вставить в нужный файл.

Заходим в папку .ssh.
На сервере выполняем cat id_rsa.pub > authorized_keys — так мы запишем наш ключ в нужный файл
На сторону клиента можно скопировать текст ключа id_rsa. Меняем файлу права chmod -c 0600 id_rsa.

Теперь заходим на удаленный сервер уже без пароля.

Следующий шаг — авторизация на сервер с помощью программы PuTTy

Копируем содержимое ключа id_rsa, вставляем куда-нибудь в блокнотик и сохраняем без расширения.
Открываем программу PuTTy Key Generator и загружаем наш ключ кнопкой «Load»

Далее открываем клиент PuTTy. Как обычно в главном окне указываем куда подключаемся, а с левой стороны выбираем «Connection -> Auth», в окошке выбираем наш ключ.

Подключаемся, видим предупреждение и подтверждаем «Yes»

И мы попадаем на сервер без пароля

Вариант второй: генерируем ключи через программу PuTTy Key Generator

Открываем программу, ничего не меняем и не выбираем, нажимаем кнопку «Generate»

На сервер нам нужно скопировать публичный ключ, но не спешите сохранять ключ кнопкой и закидывать на сервер. Сохраненный ключ имеет немного другой формат, по этмоу нам нужно скопировать содержимое окна, одной строкой, создать на сервере файл authorized_keys в папке .ssh, и вставить содержимое.

А вот для клиента, то есть приватный ключ мы можем сохранить двумя путями
1) Нажав на кнопку сохранить, мы сохраним ключ в формате PuTTy, и пользоваться можем только это программой.
2) Для клиента в linux мы должны экспортировать ключ в старый формат pem. Converisons -> Export OpenSSH key. Этот ключ мы должны разместить в папке .ssh с названием id_rsa, не забыв поменять права на 600.

В комплекте с архивом PuTTy, на который указал ссылку в самом начале, есть утилита Pageant — агент для авторизации SSH, некий менеджер приватных ключей.
С ее помощью не нужно указывать каждый раз ключ.

Теперь, когда организован доступ по ключам, можно поменять пароль пользователя на что-нибудь вида 022c1e7bd6959f2a0d8e10868976e657 и не думать о нем. Либо, для надежности можно вообще убрать авторизацию по паролю в конфиг файле /etc/ssh/sshd_config, раскомментировав строку #UseLogin no

Источник

Вы еще не авторизуетесь по ключам? Тогда мы идем к вам

Этой заметкой я хочу показать, что использовать ключи для авторизации это просто.

Начнем с того, что нам понадобится PuTTY.
Идем на http://www.chiark.greenend.org.uk/

sgtatham/putty/download.html и качаем следующее:
PuTTY — ssh-клиент
Pageant — агент для хранения ключей (зачем объясню позже)
PuTTYgen — генератор ключей

Сначала сгенерируем ключи, потом настроим PuTTY, и в конце покажу как всем этим пользоваться.

Создадим папочку для PuTTY и все скинем туда.

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

Читайте также:  Как настроить сеть mac windows

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

После генерации нам предстанет следующее.

В верхнем поле публичный ключ, который будет храниться у принимающей стороны.
Ах да, я забыл рассказать как происходит непосредственная авторизация с помощью ключей.

Для наглядности возьмем server и client.
client сообщает server’у свой публичный ключ любым доступным способом. Беспокоиться, что кто-то узнает этот ключ не стоит.
Авторизация происходит следующем образом:
дальше следует объяснение человека, который не читал соответствующей литературы, поэтому описывает так, как он себе это представляет
client обращается к server’у и они обмениваются публичными ключами.
на основании этого server авторизует client’а, дает соответствующие права.

Это было небольшое отступление, вернемся к PuTTYgen.

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

Дальше нужно сохранить сгенерированные ключи. Остановлюсь только на приватном ключе. При сохранении (Save private key) предложится сохранить ключ с расширением .ppk. Он будет использоваться Pageant в дальнейшем.

Перед тем, как мы перейдем к настройке PuTTY, расскажу о возможности восстановить публичный ключ из приватного с помощью PuTTYgen.
Для этого нужно нажать кнопку Load. Указать приватный ключ. Ввести парольную фразу (если имеется) и отобразится точно такое же окно, как на предыдущем скриншоте.

Теперь запустим PuTTY и сделаем предварительные настройки.
Выберем Default Settings и нажмем Load.
Перейдем слева на Session->Logging, отметим галочкой Printable output. В поле Log file name впишем logs\&H_&Y-&M-&D-&T.log, уберем галочку Flush log file frequently.
Таким образом, мы указали, что хранить логи будем в папочке logs, рядом с PuTTY.exe с именами на подобии 192.168.1.6_2011-08-29-101304.log
Перейдем на вкладку Window->Translation. И выберим в списке Remote character set UTF-8, чтобы не было проблем с кодировкой.
В Connection->SSH->Auth проверим, что стоит галочка напротив Attempt authentication using Pageant и укажем путь к приватному ключу в графе Private key file for authentication.
После этого вернемся на вкладку Session нажмем сохранить, чтобы указанные настройки были по-умолчанию.

Пришло время показать работу авторизации, используя ключи, на практике.
Воспользуемся агентом для хранения ключей Pageant.

После запуска, появится иконка в области уведомлений. Жмем правой кнопкой, Add key.

Выбираем ключ, указываем парольную фразу. Теперь ключ хранится в памяти.
Чтобы посмотреть ключи, можно выбрать пункт View keys.

Попробуем авторизоваться.
Открываем PuTTY. Указываем IP. Жмем Open.
В первый раз выскочит предупреждение, что раньше мы не использовали ключ для авторизации на этом сервере. Когда такое возникает впервый раз, это нормально, но если такое возникает на сервере, на котором мы уже авторизовывались, то либо сервер сменил свои ключи, либо это фейковый сервер.

Вводим логин. Жмем Enter. И мы автоматически авторизовались.

Покажу еще, на примере Komodo Edit.
Выбираем File->Open->Remote open

Выбираем Accounts. Потом New Server.
В Server Type указываем SCP. В Name произвольное название для сервера. В Hostname ip сервера (или доменное имя). В User Name логин пользователя.
Жмем Add, затем OK.
В верхнем выпадающем меню выбираем наш сервер. Если сервер разрешает авторизацию по ключам, то мы увидим список директорий на сервере, выбираем нужный файл и редактируем (при наличии прав на запись у пользователя).

PS: Следующая ошибка появляется в том случае, если сервер поддерживает только авторизацию по ключам, а у вас не включен Pageant.

Источник

Оцените статью