Ssh agent windows putty

This tutorial explains how you can replace password-based SSH authentication with key-based authentication which is more secure because only the people that own the key can log in. In this example, we’re using PuTTY as our SSH client on a Windows system.

Generate a private and public key pair

Open PuTTYgen.exe, press Generate button, move mouse. Once the keys are generated, type your key passphrase (choose a «hard to guess» one). Save Public key. Save Private key.

PuTTY Key Generator

Configure your Linux server (create user, save public key)

For this guide let’s assume you regular login name is us3r (replace it with one that you use regularly).

As root, on the shell, type:

adduser us3r --disabled-password

You will be asked to fill in some details such as the user’s real name (empty string is fine).

Now type:

su us3r
cd /home/us3r
mkdir .ssh
chmod 700 .ssh
cd .ssh

Then in that folder, create and edit a file called authorized_keys2.

In there, cut/paste your public ssh key, on ONE LINE (That is very important!!!)

  • Do not add the email@example.com at the end of the line.
  • Do not add the BEGIN PUBLIC KEY or END PUBLIC KEY.
  • Do not add the rsa-key-20090211 at the end.
  • Make sure, there is ssh-rsa at the beginning.

It should be something like:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBf3inevLchN36/bjLulNKDOnWTd/12I2QkM+o3uxg4C…

Type:

chmod 600 authorized_keys2

Add Private key to PuTTY SSH authentication agent

Start the PuTTY SSH authentication agent PAGEANT.EXE. When started, right-click its systray icon and select «add key». Select your private key file, and type in your passphrase when you add the key. The Pageant works as a passphrase keeper.

Use PuTTY to connect to your server

Open PuTTY and connect as us3r@putty.org.ru:

PuTTY - connect to a server

See that you log in without a password …

PuTTY - Authenticating with public key from agent

PuTTY is the de-facto standard way to connect via SSH from a Microsoft Windows machine.
Configuring ssh keys on Windows is not so simple, since loading them at boot time requires much more steps, according to me, than on the Linux/Unix side.

In order to load automatically the keys, there is the need for the PuTTY Authentication Agent named pageant. I suspect the name of the executable is mispelled with regard to the name of the application, since it seems to be PuTTY AGEnt for Autenthication NT (which could be the famous version of Windows, I don’t know).

Here’s how I configure it, after having generated the SSH keys on the Windows machine.

Step 1: Enable pageant at boot time

Open the file browser and manually edit the path so to enter into the Users\AppData\Roaming\Microsoft\Windows\StartMenu\ and then find the folder for the automatic execution of applications once you log in. Copy a link to the pageant application from your PuTTY installation.

Now edit the link you just created, by means of right clicking it and selection properties, and find out the command that is executed. Append to the command the location of the key you want to be loaded (full path in double quotes).

Step 2: Logout and ensure pageant is running

Reboot (or simply logout and login again) to ensure that pageant is running. After a few seconds from the login, you should see a window appearing and prompting you for the passphrase.
If that is the case, everything is setup correctly and you can see the icon of the application in the tray.

The article Automatically load Putty SSH Agent (pageant) on Windows
has been posted by
Luca Ferrari

on July 14, 2023

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

Время на прочтение3 мин

Количество просмотров193K

Есть куда более полезная и подробная памятка по ssh от amarao, а эта статья пусть останется в том виде, в котором была написана в далеком 2011.

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

Начнем с того, что нам понадобится 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-битный ключ.

Основное окно PuTTYgen

Жмем 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. И мы автоматически авторизовались.

Успешное подключение по ssh

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

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

image

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

Error: Remote SSH server does not allow password authentication. Allowed types are: publickey

PS2:
Не пропустите полезную статью Памятка пользователям ssh

Материал из DiPHOST.Ru wiki system

Перейти к: навигация, поиск

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

Программа создаёт иконку в системной области. При помощи этой иконки можно управлять агентом, смотреть список ключей, добавлять ключи, запускать сессии SSH. Для добавления ключа просто нажмите Add Key и выберите файл секретного ключа, сохранённый ранее. Если ключ защищён паролем, агент попросит ввести его. Никаких дополнительных настроек не требуется, PuTTY сам определит наличие агента. Примерно так будет выглядеть окно списка ключей:

Список ключей

Встречаются ситуации, когда есть несколько серверов, к каждому из которых имеется доступ SSH по ключам и требуется установить соединение с одного сервера на другой. Например, чтобы передать файл. Обычно аутентификация по ключам не настроена между серверами, а пароль очень сложен или вообще отсутствует. Для упрощения выхода из этой ситуации существует технология перенаправления агента. Запущенный клиент SSH на удалённом сервере будет пользоваться Вашим локальным агентом как-будто бы своим. Работать это будет только с удалённым сервером реализации OpenSSH, но таких подавляющее большинство. Для настройки перенаправления агента об этом просто надо сказать PuTTY. В разделе Connection->SSH->Auth установите чекбокс Allow agent forwarding:

Перенаправление агента

Не забудьте сохранить настройки. Соединитесь с удалённым сервером и проверьте, что перенаправление работает (создан сокет, работа с которым собственно и перенаправляется на локальную машину):

Сокет аутентификации перенаправленного агента

ВНИМАНИЕ!
Помните, что суперюзер сервера — root — имеет доступ ко всем открытым сокетам, и в теории легко может получить доступ ко ВСЕМ ключам Вашего агента.
  • Настройка подключения PuTTY
  • Настройка аутентификации по ключу в PuTTY
  • Перенаправление портов в PuTTY

A quick post on how to forward SSH key in Putty on Windows.

PuTTY SSH agent forwarding

Let’s start with some basics about SSH key/agent forwarding. Then we will dive into how to configure it in putty.

What is SSH key/agent forwarding?

Traditionally we used to have password-based authentication for Linux servers. In this age of cloud, all the Linux servers deployed in the cloud come with default key-based authentication Authentication is done using pair of keys: Private key (with user) and Public key (stored on server). So every time you connect to the server you need to supply your private key for authentication.

If you are using some jump server or bastion host for connecting servers then you need to store your private key on that server (jump/bastion). So that it can be used for authentication when connecting to servers. This leaves a security risk of the private key being exposed/accessed by other users of jump/bastion host.

In such a scenario, SSH agent forwarding should be used. SSH agent forwarding allows you to forward the SSH key remotely. That means you can authenticate without storing the key on the jump/bastion host! Putty takes care of using the key stored on your local computer and forward it so that it can be used for remote authentications.

How to configure SSH agent forwarding in Putty?

It can be done by using utility pagent.exe which comes with PuTTY. pagent.exe is an SSH authentication agent for PuTTY. It can be downloaded for free from PuTTY website along with the PuTTY executable.

Now Open pagent.exe. It will start in the background. You can click on pagent icon in the taskbar and bring it to the foreground. You should see the below screen –

pagent list of keys

Click on the Add Key button. Browse your PPK key stored on the local computer and click Open. Key will be added to the database and you should see it in the key list as below –

Imported key

Now click the Close button. Make sure pagent is running in the background. And open PuTTY. In the left panel of the category, goto Connection > SSH > Auth and select the checkbox next to Allow agent forwarding

PuTTY agent forwarding

Now you are ready to connect to your jump/bastion host. And from there to the remote Linux machines. You will not be prompted for key since it’s already added to pagent and PuTTY is making sure to forward it for further connections!

Below is my test where I connected my instance in a private subnet without supplying the SSH key in command.

Login using SSh agent forwarding!

That’s all! You can add a number of keys in pagent and use them without leaving a key footprint on intermediate servers!

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Simple mind для windows
  • Что вызвало проблему nvlddmkm sys windows 10
  • Как принудительно снять задачу в windows 10
  • Как включить графическую оболочку windows server
  • Zabbix windows perf counter