Настроить авторизацию по ssh с использованием ключей putty

Все о PuTTY: установка, настройка, основные команды

Подключение между двумя компьютерами в среде Linux осуществляется через SSH. Это сетевой протокол прикладного уровня, производящий удаленное управление ОС и туннелирование TCP-соединений. Его использование обусловлено простотой и надежностью, что позволяет выполнять безопасное подключение к серверу.

Соединение по SSH дает возможность выполнять любые команды на удаленном компьютере так, будто мы находимся прямо перед ним. Такой процесс обычно осуществляется через специальные утилиты, особенно если нужно получить доступ к Linux через Windows. Одной из программ таких является PuTTY, о которой речь пойдет в сегодняшней статье. Как ее настроить и подключиться через нее к серверу – читайте далее.

Где скачать PuTTY

PuTTY распространяется в бесплатном доступе на официальном сайте разработчика. Переходим по ссылке и загружаем подходящую версию приложения под разрядность операционной системы.

Читайте также:  Не работают lan порты роутера

Скачиваем инсталлятор и запускаем его. Перед нами отобразится окно приветствия – кликаем по кнопке «Next» до конечного пункта. По пути мы также можем изменить местоположение программы, а также добавить или исключить некоторые функции PuTTY.

После успешной установки в меню «Пуск» появится новый ярлык под названием PuTTY – с ним мы и будем работать в последующих разделах.

Как настроить PuTTY

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

Программа включает в себя 4 основных раздела:

  • Session — основная вкладка, предназначенная для подключения к удаленному компьютеру. Здесь вводятся параметры подключения, порт, адрес, а также вносятся так называемые пресеты, которыми можно воспользоваться, чтобы не вводить каждый раз данные для входа. Достаточно один раз прописать настройки сессии, сохранить ее и использовать при следующем запуске программы.
  • Terminal — необходима для включения или отключения возможностей терминала.
  • Window — здесь производятся все настройки интерфейса: внешний вид окна, цвет, шрифт и кодировка.
  • Connection — настройка параметров подключения, алгоритма шифрования, сжатия, ключей аутентификации и других значений.

Нам потребуется всего две вкладки: Session и SSH. Первым делом перейдем ко второй и убедимся, что версия протокола стоит в значении «2». Как правило, сейчас используется понятие SSH-2, так как первая версия практически не применяется из-за существенных недостатков, например, ошибки в схеме обеспечения безопасности.

Вернемся к разделу Session, где находятся основные параметры, которые потребуются нам для подключения к серверу по SSH. Давайте немного остановимся и поговорим о них:

  1. Первый блок включает в себя основные параметры, необходимые для подключения: окно ввода IP-адреса и порта, строку с выбором типа подключения.
  2. Следующий блок предназначен для создания пресетов, которые можно использовать для быстрого подключения к удаленному компьютеру. В строку «Saved Sessions» вводится название сессии, оно сохраняется с помощью кнопки «Save». Чтобы воспользоваться сохраненным пресетом, достаточно его загрузить с помощью кнопки «Load».
  3. Последний блок – параметры закрытия окна при выходе. Доступные значения: always, never, only on clean exit.

Как видите, в настройках PuTTY нет ничего сложного. Теперь давайте перейдем к подключению по протоколу SSH.

Как подключиться по SSH

Нам понадобится IP-адрес удаленного компьютера или сервера, к которому мы хотим подключиться. Последующие действия мы будем рассматривать на примере VDS от Timeweb – все шаги аналогичны любому хостингу, поэтому у вас не должно возникнуть никаких вопросов. Если же подключаетесь не к серверу, а к компьютеру, то можете сразу переходить ко второму пункту.

Подключаемся по SSH:

  1. Первым делом узнаем, какой используется адрес у VDS – для этого переходим в личный кабинет хостинга и заходим в список подключенных серверов. На Timeweb адрес можно узнать в специально отведенном для этого столбце.
  2. Переходим к PuTTY – запускаем программу и открываем раздел «Session». Там вводим адрес удаленного компьютера, указываем порт 22 и в нижней части приложения кликаем по кнопке «Open».
  3. При успешном вводе данных перед нами отобразится консольное окно, в котором нужно ввести логин и пароль для подключения к серверу. Как правило, логин – root, а пароль отправляется хостингом в почтовом письме после установки ОС.
  4. Если логин и пароль были введены корректно, то мы увидим окно приветствия.

Таким образом мы подключились к ПК на операционной системе Linux. Здесь мы можем вводить команды и удаленно взаимодействовать с компьютером.

Основные команды PuTTY

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

ls — предназначена для вывода файлов, содержит в себе набор команд:

  • ls -la — выводит различные документы и показывает права доступа, включая имя создателя и владельца;
  • ls -lha — также выводит файлы, но показывает размер файла в байтах;
  • ls -lha | less — используется для постраничного просмотра документов.

cd — необходима для перемещения между директориями, например, cd [путь] перенаправляет пользователя в указанную папку, cd../ перемещает в верхний уровень, cd

открывает корневую папку.

echo — позволяет перемещать текст в файл. Например, если нам требуется создать новый текстовый документ или добавить текст в уже созданный файл, достаточно ввести «echo Привет, мир! >> new.txt».

sudo — наиболее используемая команда, означающая «SuperUser Do». Она позволяет выполнять любые команды от имени администратора.

df — дает возможность увидеть доступное дисковое пространство в каждом из разделов операционной системы. Синтаксис: df [опции устройство].

mv — используются для переименования файлов и перемещения их в другую директорию. Синтаксис: mv [опции исходные_файлы куда].

rm — если нужно удалить файлы или директорию целиком, то используйте эту команду. Синтаксис: rm [опции файл(ы)].

cp — для копирования файлов и целых директорий воспользуйтесь этой строчкой. Синтаксис: cp [опции файл-источник файл-приемник].

mc — предназначена для запуска файлового менеджера Midnight Commander, который позволяет работать с файлами по FTP внутри консольного окна.

cat — наиболее популярная команда в Linux, позволяющая считывать данные из файлов и выводить их содержимое. Наиболее простой способ отображения содержимого в командной строке. Синтаксис: cat [опции файл].

mkdir — позволяет создать одну или несколько директорий с указанным именем. Например, mkdir mdir1 mdir2 mdir3 добавит сразу 3 директории.

chmod — изменяет права доступа к файлам и каталогам. Синтаксис: chmod [ключи установка_прав имя_файла].

pwd — при первом запуске терминала мы оказываемся в домашнем каталоге пользователя. Если вдруг каталог был изменен, то проверить это можно с помощью данной команды.

touch — используется для создания любого типа файлов: от пустого txt до пустого zip. Синтаксис: touch [имя файла].

man и —help — нужны для того, чтобы узнать информацию о команде и о том, как ее можно использовать (man). Например, «man cat» покажет доступную информацию о команде cat. Ввод имени команды и аргумента помогает показать, каким образом можно использовать команду, например, cd –help.

locate — предназначена для поиска файла в системе Linux.

Это была лишь небольшая часть команд, которые можно использовать при подключении по SSH. Если вы только начинаете изучать основы администрирования серверов, то этого списка будет достаточно.

Как подключиться к серверу без пароля

Не всегда удобно каждый раз вводить пароль для входа на удаленное устройство. Комфортнее, когда вход выполняется автоматически и без лишних усилий. В PuTTY существует такой способ – использование авторизации по ключу SSH. Настроить его можно следующим образом:

  1. Для выполнения данной операции нам потребуется отдельная утилита под названием «PuTTYgen». Она автоматически устанавливается вместе с PuTTY, поэтому зайдем в меню «Пуск» и запустим ее оттуда.
  2. Далее перемещаемся в меню «Key» и устанавливаем значение «SSH-2 RSA key». После этого кликаем по кнопке «Generate key pair».
  3. Как только ключ будет сгенерирован, сохраним его в публичном и приватном варианте.
  4. Теперь перемещаемся в PuTTY и открываем раздел «Auth» — в него добавляем приватный ключ.
  5. Открываем раздел «Session» и сохраняем в нем пресет для подключения, как мы делали ранее. Затем подключаемся к серверу по своему адресу.
  6. Осталось подключиться к серверу и отправить на него открытый ключ. Для этого вставляем его в конец файла /root/.ssh/authorized_keys. Ключ мы можем скопировать напрямую из утилиты, в которой он был сгенерирован.

Готово! Теперь при повторном входе на сервер авторизация не потребуется. Главное – сохранить настройки сессии, чтобы не вводить ключ каждый раз.

Сегодня мы разобрали одну из важнейших тем, с которой сталкивается каждый, кто начинает изучать администрирование серверов. Использование PuTTY позволяет подключаться по протоколу SSH и удаленно работать с компьютером на операционной системе Linux. Такой способ позволяет легко администрировать устройство и всегда быть в курсе возникающих проблем. Надеемся, что наша статья была полезной, и у вас не осталось вопросов. Спасибо за внимание!

Источник

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

По умолчанию инженеры подключаются к сетевому оборудованию с помощью имени пользователя и пароля. По протоколу Telnet учетные данные пользователя передаются в открытом виде, а по протоколу SSH в зашифрованном. Чтобы не передавать секретную часть по сети, используется аутентификация по публичным ключам. При такой аутентификации публичный ключ пользователя заранее прописывается пользователю на оборудовании. Секретный ключ по сети не передается.

Это руководство поможет вам быстро начать использовать публичные ключи для аутентификации при подключении к сетевому оборудованию по протоколу SSH. Руководство применимо как для Windows, так и для Mac OS X. Я постарался сделать его максимально простым и информативным. Оно не перегружено, но отвечает на основные вопросы:

Содержание

  • Конвертация ключа между OpenSSH SecureCRT PuTTY.
  • Использование разных пар публичных ключей для разного оборудования. Один ключ — это хорошо, но в реальности неприменимо. Для разных заказчиков или оборудования необходимы разные пары публичных ключей (одни с паролем, другие без).
  • Использованию нативной (native) MAC OS X для работы с публичными ключами.
  • Руководство также должно помочь в использовании Ansible с сетевым оборудованием, поскольку Ansible по умолчанию использует OpenSSH с аутентификацией по публичным ключам.

90 % изложенного материала проверено на реальном оборудовании.

Введение

Кроме стандартной аутентификации по паролю (password/keyboard) в протоколе SSH существует также аутентификация по публичному ключу (RSA).

Аутентификация с помощью RSA-ключей состоит из нескольких этапов:

  • Создание пары RSA-ключей.
  • Установка открытого ключа на оборудование.
  • Подключение к оборудованию и аутентификация с помощью RSA-ключа.

Почему только RSA? Почему не DSA? К сожалению, ответа на этот вопрос я не нашел (и не особо искал). Но официально на оборудовании Cisco поддерживается только RSA.

Документ Secure Shell Configuration Guide, Cisco IOS Release 15E:

Secure Shell Configuration Guide, Cisco IOS Release 15E
Restrictions for Secure Shell Version 2 Support
Rivest, Shamir, and Adleman (RSA) key generation is an SSH server-side requirement. Devices that act as SSH clients need not generate RSA keys.

Попытка ввести данные DSA-ключа:

Создание публичного RSA-ключа

Пару RSA-ключей можно создать с помощью различных утилит: SecureCRT, PuTTYgen или любым другим ПО. При создании ключа можно задать Passphrase (защита ключа с помощью пароля).

Генерирование RSA-пары в SecureCRT

SecureCRT → Tools → Create Public Key…:

Чуть-чуть теории → кнопка “Next >”:

Тип сертификата RSA/DSA → Выбираем RSA → кнопка “Next >”:

Пароль шифрования для секретного ключа (необязательно, можно оставить пустым и не шифровать) + Комментарий → кнопка “Next >”:

Выбираем длину ключа (в версии SecureCRT 6.1.0 максимальная длина ключа равна 2048 бит, в версии 8.5.4 — 16 384 бит):

Генерирование ключа → кнопка “Next >”:

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

Сохранение пары ключей → Выбор места хранения → Выбор формата сохраняемого ключа (VanDuke Private format, OpenSSH legacy, OpenSSH new) → кнопка “Finish”:

SecureCRT спрашивает, делать ли данный ключ ключом по умолчанию для SecureCRT:

Генерирование RSA-пары в PuTTYgen

Выбираем параметры (тип пары: RSA; битная размерность ключа: 2048; по желанию задаём Passphrase (защита ключа с помощью пароля)) → Generate:

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

Сохраняем RSA-ключи → Кнопка «Save private key»:

Обратите внимание: RSA-ключи, сохраненные в частном формате в одном ПО, нельзя использовать в ПО другого производителя. То есть пара RSA-ключей, созданных в PuTTYgen и сохраненных в формате Putty Private Key, не подходит для использования в SecureCRT, и наоборот. PuTTY поддерживает только формат Putty Private Key. Универсальным решением для распространения ключей является конвертирование ключей в формат OpenSSH (Смотри ссылку 2: “Conversion from Putty to SecureCRT with auth. keys”). Т. к. SecureCRT свободно работает с форматом OpenSSH. А ПО PuTTYgen преобразует формат OpenSSH в формат Putty Private Key.

Конвертирование RSA-ключа из формата Putty Private Key (PuTTY) в формат OpenSSH (SecureCRT)

Чтобы использовать в SecureCRT RSA-ключи, которые сгенерированы в PuTTYgen и сохранены в формате Putty Private Key (*.ppk), экспортируем их с помощью PuTTYgen в формат OpenSSH:

  1. Запускаем PuTTYgen.
  2. Загружаем существующий RSA-ключ в формате Putty Private Key (*.ppk) → Кнопка “Load”.
  3. Сохраняем файл публичного ключа → “Save public key”.
  4. Экспортируем секретный ключ в формат OpenSSH: меню PuTTYgen → “Conversions” → “Export OpenSSH key”.
  5. Используем в SecureCRT файлы в формате OpenSSH. Файл с публичным ключом имеет расширение .pub, файл с секретным ключом не имеет расширения.

Конвертирование RSA-ключа из формата VanDyke Private Key (SecureCRT) в формат Putty Private Key (PuTTY)

Чтобы использовать в PuTTY RSA-ключи, которые сгенерированы в SecureCRT и сохранены в формате VanDyke Private Key (файл публичного ключа — *.pub, файл секретного ключа *. (без расширения)), экспортируем их с помощью SecureCRT в формат OpenSSH, а затем с помощью PuTTYgen экспортируем в формат Putty Private Key (*.ppk):

  1. Запускаем SecureCRT.
  2. Меню “Tools” → “Convert Private Key to OpenSSH format. ”
  3. Выбираем исходный файл с ключами VanDyke Private Key.
  4. Сохраняем OpenSSH-ключи с новым именем.
  5. Запускаем PuTTYgen.
  6. Загружаем существующий RSA-ключ в формате OpenSSH (*.): PuTTYgen Menu → “Conversions” → “Import key”.
  7. Сохраняем файл в формате Putty: “Save private key”.

Генерирование публичных ключей на MAC OS X средствами операционной системы

Будем использовать встроенную утилиту ssh-keygen (man ssh-keygen).
Генерируем RSA-ключ с длиной 2048 бит с указанием имени ключа, путем к папке с местом хранения ключа:

Во время выполнения программа спросит пароль для защиты RSA-ключа:

Генерируем RSA-ключ с длиной 4096 бит в с указанием имени ключа, путем к папке с местом хранения ключа, пароль задаем в явном виде в параметрах генерации ключа (-N «cisco»):

Не рекомендуемые параметры генерации ключей: ненадёжный ключ длиной 1024 бита, с указанием имени ключа, путем к папке с местом хранения ключа, пароль задаем в явном виде в параметрах генерации ключа (-N «» – без пароля):

Итак, мы создали три ключа в с указанием имен ключей и указанием места хранения ключей (по умолчанию все ключи сохраняются в /Users/[Username]/.ssh).

По умолчанию, при подключении по SSH с аутентификацией по публичному ключу, происходит последовательный перебор всех публичных ключей, которые хранятся в папке /Users/[Username]/.ssh.

Ключ R6: переименуем ключ в “id_rsa” (по умолчанию имя файла генерируемого ключа “id_rsa”) и перенесем в папку с SSH-ключами (

/.ssh/) (Т. е. выполним все действия, чтобы ключ R6 использовался как основной ключ для подключений по SSH по умолчанию):

Преобразуем публичный OpenSSH-ключ в формат RFC4716 (экспорт в Cisco IOS):

Применение публичного ключа на оборудовании

Как на различном оборудовании привязать открытый ключ к пользователю?

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

Cisco IOS XE, Catalyst (с версии 15.1 и выше), IOS

Cisco ASA

Весь ключ вставляем в одну строчку (OpenSSH формат).

Маршрутизаторы и коммутаторы Huawei

Типы форматов ключей, импортируемых на Huawei:

“The SecureCRT and PuTTY generate RSA keys in PEM format.”

“The OpenSSH generates RSA keys in OpenSSH format.”

“The OpenSSL generates RSA keys in DER format.”

По умолчанию — в шестнадцатеричном виде:

Примечание: оборудование Huawei поддерживает не только ключи в формате RSA, но и другие форматы:

Можно жестко задать тип аутентификации для пользователя по SSH:

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

Huawei USG (6000)

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

По умолчанию уровень привилегий после журналирования с использованием сертификатов равен 0 и повышению не поддается. Поэтому уровень приоритета задается с помощью

Cisco Nexus 9.3

Вариант 1: предустанавливаем файл публичного ключа на устройство и привязываем файл публичного ключа к пользователю.

  • Копируем файл публичного ключа на устройство.
  • Указываем пользователю использовать файл публичного ключа.

Вариант 2: копируем публичный ключ пользователю:

Использование секретного ключа для подключения по SSH

Этот раздел посвящен настройке SSH-клиентов для аутентификации по RSA-ключам на сетевом оборудовании (или другом оборудовании, при условии, что оборудование и ПО поддерживает аутентификацию по публичным ключам).

Мы рассмотрим настройку использования публичного ключа в самых популярных программах: SecureCRT и PuTTY.

SecureCRT

В окне настроек SSH есть список Authentication. В нём необходимо увеличить приоритет PublicKey до самого высокого — сделать верхним в списке.

Затем перейдите в параметры PublicKey и выберите файл приватного ключа. Самый верхний переключатель позволяет использовать глобальные настройки секретного ключа или сеансовые настройки — другой секретный ключ (ключ не по умолчанию) — только для этого подключения.

Настраиваем глобальный публичный ключ: в меню Options → Global options → Категория SSH2.

PuTTY

В настройках SSH (Connection → SSH → Auth) в поле “Private key file for authentication” укажите файл Putty Private Key (*.ppk):

MAC OS X

Настройка стандартного клиента для использования публичных ключей:

    Подключение с нестандартным ключом (non-default key), указанным вручную:

Подключение с нестандартным ключом (non-default key), указанным вручную:

Подключение с ключом по умолчанию (default key – система сама найдет и использует Default public key):

Как упростить работу с SSH на MAC OS X:

Заполняется таким образом:

Примечание: у меня некорректно настроено подключение по умолчанию (как правильно, я не знаю), потому что подключение к хосту R6 (10.31.73.31) выполняется очень долго. Рекомендуется указать сразу указать путь к ключу по умолчанию.

Пример подключения по ssh используя публичные ключи и файл config:

Заключение

RSA-ключи могут использоваться для замены аутентификации по паролю, но не во всех случаях:

  • Невозможна аутентификация по публичным ключам, если настроена доменная аутентификация (потому что для аутентификации проксируются LDAP-запросы (kerberos) на сервер).
  • Невозможна аутентификация по публичным ключам на старом сетевом оборудовании (пример: не получилось настроить на Cisco Catalyst 2960 с прошивкой 12.2).

Незащищенные паролем публичные ключи удобно применять в стендовом оборудовании. Недостаток: приходится рассылать коллегам и партнерам связку приватных и публичных ключей.

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

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

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

Рекомендуется использовать публичные ключи для замены паролей, если пароли вводятся с помощью скриптов (пример: autologon в SecureCRT).

Рекомендуется использовать публичные ключи для защиты от передачи пароля по сети.

Некоторое ПО по умолчанию использует публичные ключи для аутентификации по SSH вместо пароля (пример: Ansible).

Источник

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