passphrase ssh что это
Вы еще не авторизуетесь по ключам? Тогда мы идем к вам
Этой заметкой я хочу показать, что использовать ключи для авторизации это просто.
Начнем с того, что нам понадобится 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-битный ключ.
Жмем 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.
Как настроить SSH-ключи и кодовую фразу для сервера
Введение
SSH-ключи позволяют авторизоваться на виртуальном сервере более безопасным, чем используя пароль, путем – при помощи SSH. В то время как сервер можно взломать, если использовать метод подбора пароля (брутфорс), расшифровать SSH-ключи только этим способом практически невозможно. SSH представляет из себя пару ключей, один из которых открытый (публичный), а другой закрытый (или приватный, и он есть только у вас). Сначала вы помещаете файл с публичным ключом на свой SSH-сервер, а затем подключаетесь к серверу, используя приватный ключ. Корректная работа возможна только при наличии обоих ключей – и именно благодаря этому ваше сообщение будет безопасным, и при этом вам не нужно использовать пароль. Вы можете усилить безопасность такого способа авторизации, активировав для закрытого ключа запрос кодовой фразы.
Сначала вам необходимо создать пару ключей:
Как только вы введете команду генерации ключей, вам нужно будет определиться со следующим параметром:
Можете просто нажать Enter, и тогда файл будет сохранен в выбранную выше директорию по умолчанию.
Использование кодовой фразы является необязательным и остается на ваше усмотрение. Однако установка кодовой фразы имеет свое преимущество: если ваш закрытый ключ попадет в руки к злоумышленникам, они не смогут войти в аккаунт до тех пор, пока не подберут кодовое слово, а значит, у вас будет дополнительное время для принятия необходимых мер. Единственный недостаток использования кодового слова – это, естественно, необходимость вводить его каждый раз, когда вы авторизуетесь через SSH.
Полностью процесс создания ключей имеет такое кодовое выражение:
Шаг 3 – копирование открытого ключа
После того, как вы создали пару ключей, необходимо добавить открытый ключ на нужный вам виртуальный сервер.
Вы можете сделать это двумя способами:
Вне зависимости от выбранной команды вы увидите следующее (с вашими данными):
После этого вы можете авторизоваться как пользователь (user@12.34.56.78), и пароль не будет запрошен.
Шаг 4 – Деактивировать пароль для root-доступа
Это шаг не является обязательным.
Как только вы скопировали ваши SSH-ключи и удостоверились, что можете авторизоваться через SSH, вы можете ограничить доступ к правам суперпользователя (чтобы можно было заходить только через SSH).
Для этого откройте файл настройки SSH:
Внутри этого файла вы найдете параметр PermitRootLogin – измените его так, чтобы пользователи могли авторизоваться только через SSH-соединение:
SSH авторизация по ключу через PuTTY
На сегодняшний день набирает обороты практика аутентификации к SSH-серверу по ключу, в этом есть несколько преимуществ:
В это статье мы настроим SSH авторизации на сервере CentOS 7 по ключу, и настроем подключение через ключ утилиту PuTTY.
Генерация ключа
Если вы хотите обезопасить себя по максимальному вы можете задать пароль для защиты приватного ключа в полях 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 то вас запросит вести этот пароль. Если же всё настроено неправильно, то будет выдано сообщение об ошибке и предложено ввести пароль.
Working with SSH key passphrases
In this article
You can secure your SSH keys and configure an authentication agent so that you won’t have to reenter your passphrase every time you use your SSH keys.
With SSH keys, if someone gains access to your computer, they also gain access to every system that uses that key. To add an extra layer of security, you can add a passphrase to your SSH key. You can use ssh-agent to securely save your passphrase so you don’t have to reenter it.
Adding or changing a passphrase
You can change the passphrase for an existing private key without regenerating the keypair by typing the following command:
If your key already has a passphrase, you will be prompted to enter it before you can change to a new passphrase.
Auto-launching ssh-agent on Git for Windows
You can run ssh-agent automatically when you open bash or Git shell. Copy the following lines and paste them into your
/.bashrc file in Git shell:
If your private key is not stored in one of the default locations (like
/.ssh/id_rsa ), you’ll need to tell your SSH authentication agent where to find it. To add your key to ssh-agent, type ssh-add
Now, when you first run Git Bash, you are prompted for your passphrase:
The ssh-agent process will continue to run until you log out, shut down your computer, or kill the process.
Saving your passphrase in the keychain
On Mac OS X Leopard through OS X El Capitan, these default private key files are handled automatically:
The first time you use your key, you will be prompted to enter your passphrase. If you choose to save the passphrase with your keychain, you won’t have to enter it again.
Otherwise, you can store your passphrase in the keychain when you add your key to the ssh-agent. For more information, see «Adding your SSH key to the ssh-agent.»
Настройка пары ключей ssh на linux сервере
2770 просмотров 1 2020-12-14
Для повышения безопасности ssh-соединения рекомендуется отказаться от логина по паролю, и подключаться к удалённому серверу с помощью ключей. Это действие аналогично отпиранию замка с помощью ключа. Логин по паролю в конце-концов может быть взломан методом перебора, либо утечкой пароля. Тогда как логин по ключам достаточно стоек к взлому.
Здесь будет рассказано, как создать пару ключей на клиентской машине, работающей под ОС Ubuntu 18.04. Однако, данное руководство будет актуально и на других версиях linux, с некоторыми оговорками.
1. Создание пары ключей RSA
Для того, чтобы заходить на сервер по ключу, необходимо сгенерировать пару ключей: открытую и закрытую. Открытый (или публичный) ключ мы помещаем на сервер, а закрытый хранится у нас. По этой паре мы можем осуществлять логин на сервер. На данный сервер сможет заходить тот, у кого есть вторая часть ключа.
Сгенерируем пару ключей.
После выполнения этой команды, вы получите следующий вывод:
Если ранее вы генерировали пару ssh-ключей, то вероятнее всего вы получите следующий вывод:
Обратите внимание, что если у вас уже есть ключ, и вы его используете, то при его перезаписи вы не сможете уже залогиниться на тот сервер, где храниться его публичная часть.
После успешной операции, вы увидите следующий вывод:
Таким образом вы можете задать ключевую фразу, это рекомендуется сделать. Эта фраза добавить ещё дин уровень безопасности, для предотвращения входа на сервер неавторизированных пользователей.
После этого, вы увидите следующий вывод:
Это говорит о том, что у вас появилась пара из открытого и закрытого ключа, которые могут быть использованы для логина на удалённый сервер. Далее необходимо скопировать открытый ключ на удалённый сервер.
Копирование открытого ключа с помощью программы ssh-copy-id
Программа ssh-copy-id присутствует во многих дистрибутивах linux, поэтому наиболее вероятно что этот вариант вам подойдёт по умолчанию.
Для копирования открытой части ключа, достаточно произвести копирования ключа следующей командой:
Если вы ни разу не заходили на сервер, то вероятнее всего вы получите следующее предупреждение:
Это означает, что ваша локальная машина не знает данный хост. Достаточно ввести “yes” и нажать “Enter”.
После чего программа будет искать в директории локального пользователя ключ id_rsa.pub (открытый), который мы создали ранее. Если утилита найдёт этот файл, то программа копирования запросит пароль для входа на удалённый хост.
Введите пароль, обратите внимание, что ввод пароля не отображается по соображениям безопасности. И нажимте ввод. После этого программа скопирует содержимое ключа из
/.ssh/id_rsa.pub в файл authorized_keys в поддиректории
/.ssh домашней директории вашего пользователя на удалённом хосте. В результате вы увидите следующее сообщение:
Таким образом ключ загружен на удалённый сервер.
Копирование ключа вручную
Иногда бывают случаи. когда отсутствует утилита ssh-copy-id (особенно на старых операционных системах). Поэтому можно скопировать ключ вручную. Один из вариантов – это передать ключ по ssh. Для этого мы будем считывать ключ, с помощью команды cat, затем передавать его через pipe команде ssh, которая создаст ключ и разместит его в файле.
Если это подключение будет в первый раз, нужно будет точно так же согласиться с данным соединением и затем ввести пароль.
Аналогично, можно все эти действия проделать вручную. Например, если вы не имеете доступ по ssh к удалённой машине. Для начала надо вывести содержимое открытого ключа на вашей локальной машине.
Вы получите содержимое файла ключа, которое будет выглядеть примерно так:
После чего на удалённой машине необходимо создать папку
/.ssh. Команда ниже создаст директорию, если её не существовало.
Теперь можем дописать публичный ключ нашей локальной машины на удалённую в конец файла authorized_keys :
Обратите внимание, что надо заменить “строка_публичного_ключа” на вывод команды cat
После чего, необходимо убедиться, что директория
/.ssh и файл authorized_keys имеют соответствующие права доступа:
Если вы используете акаунт root, для настройки ключей. То не забудьте поменять права пользователя, чтобы директория и файлы ключей принадлежали пользователю, а не root. Делается следующей командой:
Где, user следует заменить на имя вашего пользователя.
Подключение к удалённому серверу и отключение логина по паролю
После всех процедур вы можете попробовать подключиться к удалённому серверу.
Если при создании пары ключей вы не задали ключевую фразу (passphrase), вы будете залогинены автоматически. Если вы задали ключевую фразу, вам будет предложено её ввести. Это означает, что вы всё сделали верно. Теперь можно отключить логин по паролю. Для этого отредактируем файл sshd_config:
Всё, теперь можете открыть новое окно терминала, и проверить соединение по ssh по вашему логину. Всё должно работать без пароля.