- Как сгенерировать открытый/закрытый SSH-ключ в Linux
- linux-notes.org
- Сгенерировать открытый/закрытый SSH ключ в Unix/Linux
- Сгенерировать открытый/закрытый SSH ключ в Unix/Linux
- Использование открытого/закрытого SSH ключа в Unix/Linux
- Добавить комментарий Отменить ответ
- Как сгенерировать свой SSH-ключ на Linux/MacOS/Windows
- Генерация SSH-ключа на Linux/MacOS
- Генерация SSH-ключа на Windows
- Работа с форматом публичного ключа PuTTY
- Генерация SSH-ключа на Windows с помощью Git Bash
- Резюме
- Subscribe to Блог php программиста: статьи по PHP, JavaScript, MySql
- Шифрование файлов и папок в Linux
- Утилита GPG
- Шифрование файлов с помощью пароля
- Шифрование с использованием ключей
- Подписи и шифрование
- Выводы
Как сгенерировать открытый/закрытый SSH-ключ в Linux
Если вы часто используете ssh для подключения к удаленному хосту, одним из способов обеспечения безопасности соединения является применение открытого/закрытого SSH-ключа, так как при этом по сети не передается никакой пароль и система устойчива к атакам методом «грубой силы».
Создать открытый/закрытый SSH-ключ в Linux очень просто.
1. Откройте терминал. Введите:
Альтернативой является использование для создания ключа технологии DSA (Digital Signing Algorithm):
Примечание: Было много дебатов о том, что безопаснее, DSA или RSA. По моему мнению, если только вы не любитель копаться в технических подробностях, большой разницы между этими технологиями нет. Обе работают хорошо.
2. На нижеследующем скриншоте вы видите предложение указать место для сохранения ключа. По умолчанию это папка .ssh в вашей домашней директории. Для того, чтобы согласиться с настройками по умолчанию, просто нажмите «Enter».
3. Далее, вас попросят ввести идентификационную фразу. Это не идентификационная фраза для соединения с удаленным хостом. Это идентификационная фраза для разблокировки закрытого ключа, поэтому она не поможет вам получить доступ к удаленному серверу, даже если на нем хранится ваш закрытый ключ. Ввод идентификационной фразы не является обязательным. Чтобы оставить ее пустой, просто нажмите «Enter».
4. Теперь ваши открытый и закрытый SSH-ключи должны быть сгенерированы. Откройте файловый менеджер и перейдите в директорию .ssh. Вы должны увидеть два файла: id_rsa и id_rsa.pub.
5. Загрузите файл id_rsa.pub в домашнюю директорию вашего удаленного хоста (предполагается, что удаленный хост работает под Linux). Подключитесь к удаленному хосту с помощью SSH и переместите открытый ключ в его целевую директорию с помощью команд:
6. Оставаясь на удаленном хосте, откройте конфигурационный файл SSH:
Убедитесь, что следующие атрибуты имеют корректные значения:
Нажмите «ctrl + o», чтобы сохранить изменения, затем «ctrl + x», чтобы закрыть файл.
7. И последнее, перезапустите сервер SSH на удаленном хосте:
На этом все. Теперь вы можете соединяться со своим удаленным хостом с помощью команды:
Источник
linux-notes.org
Сгенерировать открытый/закрытый SSH ключ в Unix/Linux
Подключение к серверу может быть различным, но одно из самых безопастных — это использования закрытого/открытого SSH-ключа, т.к при этом по сети не передается никакой пароль и система устойчива к атакам методом «грубой силы». Ничего нового я в этой теме не опишу, но для новичков — будет полезно. Та вообще, в качестве заметке — может пригодится кому-то.
Сгенерировать открытый/закрытый SSH ключ в Unix/Linux
Имеется 2 основных технологии по шифрованию ключей:
- RSA (аббревиатура от фамилий Rivest, Shamir и Adleman) — криптографический алгоритм с открытым ключом, основывающийся на вычислительной сложности задачи факторизации больших целых чисел.
- DSA (англ. Digital Signature Algorithm — алгоритм цифровой подписи) — криптографический алгоритм с использованием открытого ключа для создания электронной подписи, но не для шифрования (в отличие от RSA и схемы Эль-Гамаля). Подпись создается секретно, но может быть публично проверена. Это означает, что только один субъект может создать подпись сообщения, но любой может проверить её корректность. Алгоритм основан на вычислительной сложности взятия логарифмов в конечных полях.
- ecdsa -новый алгоритм цифровой подписи (DSA), разработанный правительством США с использованием эллиптических кривых. Вероятно, это хороший алгоритм для текущих приложений. Поддерживаются только три размера ключа: бит 256, 384 и 521. Мы рекомендуем всегда использовать его с 521 битом.
- ed25519 — это новый алгоритм, добавленный в OpenSSH. Поддержка этого в клиентах еще не является универсальной. Таким образом, его использование в приложениях общего назначения, возможно, еще не рекомендуется.
Есть много споров насчет того, что более секурнее, DSA или RSA. Но выбор по использованию за вами.
Генерация открытого/закрытого SSH ключ с RSA шифрованием в Unix/Linux
Откройте терминал. Введите:
Он сгенерирует ключ и положит в стандартную папку (
/.ssh). Можно указать какую битность использовать:
Для более удобного использования, я создам файл с именем котороя я задам сам, например:
Генерация открытого/закрытого SSH ключ с DSA шифрованием в Unix/Linux
Альтернативой является использование для создания ключа технологии DSA (Digital Signing Algorithm):
Он сгенерирует ключ и положит в стандартную папку (
/.ssh). Можно указать какую битность использовать:
Для более удобного использования, я создам файл с именем котороя я задам сам, например:
Генерация открытого/закрытого SSH ключ с ecdsa шифрованием в Unix/Linux
И так, чтобе заюзать данный тип шифрования, можно выполнить:
И опять таки, можно заюзать:
Генерация открытого/закрытого SSH ключ с ed25519 шифрованием в Unix/Linux
И так, чтобе заюзать данный тип шифрования, можно выполнить:
И опять таки, можно заюзать:
Использование открытого/закрытого SSH ключа в Unix/Linux
Чтобы посмотреть содержание ключа, используйте:
И получите что-то типа:
На mac OS X имеется функция которая позволяет копировать в буфер, например:
Данный ключ стоит скопировать на удаленный сервер следующим образом:
- YOUR_KEY — Ваш сгенерированный ключ.
- YOUR_USER — Ваш пользователь на удаленной машине.
- YOUR_HOST — Ваш хост на удаленной машине.
Должен появиться файл:
И, добавим содержание ключа в:
Или если используется
/.ssh/authorized_keys2, то применяем аналогичные действия:
PS: Можно еще одной командой выполнить ряд аналогичных действий:
Осталось уже долго, идем дальше….
Изменение ssh_config
В зависимости от Unix/Linux ОС, ssh_config может лежать в разным местах.
Пример файла в Debian/Ubuntu:
Пример файла в Redhat/Fedora/Centos:
В данном конфиге (я имею ввиду по этой теме), нас интересует следующие строки:
После того как привели к такому виду, перезапускаем ssh:
Подключаемся к удаленному серверу:
Вот еще полезное чтиво:
Другие темы можно найти на сайте 🙂
Тема «Сгенерировать открытый/закрытый SSH ключ в Unix/Linux» завершена.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Источник
Как сгенерировать свой SSH-ключ на Linux/MacOS/Windows
В этой статье я показал, как сгенерировать валидный ssh-ключ для любой ОС. Так же, кратко объяснил, как работать с этим ключом, какой ключ добавлять на сервер, и рассказал о некоторых нюансах генерации ключей, которые могут возникать у пользователей Windows.
Генерация SSH-ключа на Linux/MacOS
В системах Linux/MacOS уже встроена утилита ssh-keygen , которая позволяет из коробки сгенерировать пары SSH-ключей. Выполнив команду ssh-keygen из консоли компьютера, будет создан 2048-битный RSA-пара ключей, которую вы можете использовать для своих задач.
При вызове, эта утилита попросит вас указать путь, по которому эти ключи будут храниться. По умолчанию ключи сохраняются по пути
/.ssh . При генерации ключей, создаётся 2 файла id_rsa (приватный ключ), и id_rsa.pub (публичный ключ). Если вы будете использовать путь по умолчанию, как предлагает ssh-keygen, то это позволит автоматически находить ваши SSH-ключи при аутентификации. Потому, я рекомендую принять все предложения, просто нажав ENTER .
Если в этой папке уже находятся ранее сгенерированные ключи, то вы получите сообщение с вопросом: перезаписать ли старые ключи новыми
Если вы перезапишете ключ на новый, то старый больше не будет работать. Выбор опции y это необратимое удаление старого ключа, и перезапись его на новый.
После выбора пути хранения ключа, вам будет предложено ввести ключевую фразу passphrase , по которой вы сможете декодировать приватный ключ на диске.
Если вы зададите эту фразу, то вам придётся каждый раз, при использовании этого ключа вводить её (если вы не используете ПО агента SSH, которое хранит расшифрованный ключ). Я, обычно, оставляю эту фразу пустой, и просто нажимаю Enter , а так же, ниже, ещё раз подтверждаем ввод фразы, нажимая Enter .
После чего, пара ключей будет сгенерирована. И в указанной папке появится 2 фала (приватный и публичный ключи), которые вы теперь можете использовать для аутентификации.
Если вы не очень часто пользуетесь SSH, вы наверное путаетесь в том, что такое публичный ключ, и приватный ключ, и какой из них нужно добавлять на сервер (к примеру в DigitalOcean, GitHub), чтобы работала аутентификация. Так вот, вы делитесь с другими серверами только публичным ключом. Приватный ключ всегда хранится только на вашем локальном компьютере, и вы не должны делиться с ним ни с кем.
Генерация SSH-ключа на Windows
К сожалению, windows не может похвастаться встроенными инструментами генерации SSH-ключей. Потому, для того, чтобы создать пару SSH-ключей на windows, нужно установить утилиту PuTTY. Эта утилита позволяет подключаться к удалённым серверам через SSH, а их дополнительная утилита PuTTYgen используется для генерации SSH-ключей на windows.
На сайте вам необходимо скачать .msi версию (в секции Package files ), после чего запустить установку, следуя всем шагам установщика.
После того, как программа будет установлена, на вашем компьютере появится утилита PuTTYgen , найти которую вы можете либо в меню «пуск», либо нажав кнопку Windows и начать вводить её название:
А чтобы сгенерировать ssh-ключ через putty, вам нужно запустите эту утилиту. Её интерфейс созданию ключа будет выглядеть подобным образом:
Вы можете кастомизировать настройки создания ключей (во вкладке Parameters ), если хотите, но значения по умолчанию подходят для большинства всех случаев. Всё, что вам осталось — нажать на кнопку Generate , и рандомно подвигать мышкой ^^.
Когда ключ будет сгенерирован, то вы увидите публичный ключ, отображаемый в текстовом поле. Скопируйте его в буфер обмена, и его можете добавить на любой сервер для аутентификации (DigitalOcean, GitHub, BitBucket, . ). Обязательно проскрольте всю текстовую область, чтобы скопировать ключ полностью.
Затем вам будет предложено ввести ключевую фразе для этого SSH-ключа. Его заполнение повышает безопасность, так как кто-то, кто захватит доступ к этому ключу, не сможет его использовать, не зная ключевую фразу. Вы должны будете указывать эту фразу каждый раз, когда будете использовать этот ключ (если вы не используете ПО агента SSH, которое хранит расшифрованный ключ). Но, я, обычно, оставляю его пустым, для удобства , плевал я на безопасность.
Когда вы закончите настройку, нажмите на кнопку Save private key и выберите безопасное место, куда вы сохраните его. Вы можете назвать свой ключ как угодно, а расширение .ppk будет добавлено ему автоматически.
Если вы не ввели ключевую фразу, то вас попросят подтвердить, что вы действительно хотите сохранить ключ неё. Если вы согласны с этим, нажмите ENTER , чтобы продолжить.
Работа с форматом публичного ключа PuTTY
Вы также можете нажать на кнопку Save public key , но учтите: формат, который использует PuTTYGen, при сохранении публичного ключа, несовместим с файлами OpenSSH authorized_keys , используемыми для аутентификации ключа SSH на серверах Linux. Потому, у вас по незнанию этого нюанса может возникать ошибка при добавлении ключа, созданного через PuTTY.
Если вам нужно увидеть открытый ключ в правильном формате после того, как закрытый ключ был сохранен:
- Откройте PuTTYgen.
- Загрузите свой приватный ключ в утилиту, нажав на кнопку Load , и выбрав нужный файл ключа.
- Скопируйте публичный ключ из ранее известного поля.
Генерация SSH-ключа на Windows с помощью Git Bash
Очень вероятно, что вы уже используете Git в своей системе. Потому, вам может даже не понадобиться установка PuTTY в свою систему. Ввиду того, что git bash является очень приближенной системой эмулирования Unix-подобных систем, там доступно большинство линуксовских команд. Потому, в этом случае, вы можете сгенерировать SSH ключ через GIT.
Потому, чтобы сгенерировать ключ в Windows, достаточно выполнить команду ssh-keygen , работа с которой была описана выше.
Резюме
В этой статье я показал, как сгенерировать ssh ключ на разный операционных системах: Windows, Linux, MacOS. Прочитав эту статью вы со стопроцентной уверенностью будете знать, как создать свой SSH ключ на любое ОС, с котороми будете работать. В этой статье показан подход, при котором генерируется общий ключ, который подойдёт под большинство случаев: ssh ключ для GitLab, GitHub, DigitalOcean.
Последнее, что вам останется — скопировать публичный ключ, и добавить его на сервер, с котором будете работать.
Subscribe to Блог php программиста: статьи по PHP, JavaScript, MySql
Get the latest posts delivered right to your inbox
Источник
Шифрование файлов и папок в Linux
В современном мире каждый аспект нашей личной жизни записывается на компьютеры. Один из способов защиты наиболее важной информации — шифрование файлов и каталогов. Во время шифрования содержимое файлов перемешивается с избыточными данными в соответствии с установленным алгоритмом, таким образом, что расшифровать его можно только имея специальный пароль или ключ.
В операционной системе Linux есть замечательный инструмент с открытым исходным кодом для шифрования файлов — GNU Privacy Guard или просто GPG, который может быть использован для шифрования любого файла из командной строки или в графическом режиме. О нем и пойдет речь в сегодняшней статье.
Утилита GPG
Перед тем как перейти к использованию утилиты, давайте рассмотрим ее синтаксис:
$ gpg опции файл параметры
Опции указывает что необходимо сделать с файлом, как это сделать и какие возможности использовать. Давайте рассмотрим самые основные опции, которые мы будем использовать в этой статье:
- -h — вывести справку по утилите;
- -s, —sign — создать цифровую подпись, эта опция используется вместе с другими опциями для шифрования;
- —clearsign — подписать незашифрованный текст;
- -e, —encrypt — зашифровать данные, с помощью ключа;
- -с, —symmetric — зашифровать данные, с помощью пароля;
- -d, —decrypt — расшифровать данные, зашифрованные с помощью ключа или пароля;
- —verify — проверить подпись;
- -k, —list-keys — вывести доступные ключи;
- —list-sigs — вывести доступные подписи;
- —fingerprint — вывести все ключи вместе с их отпечатками;
- —delete-key — удалить ключ;
- —delete-secret-key — удалить секретный ключ;
- —export — экспортировать все ключи;
- —export-secret-keys — экспортировать все секретные ключи;
- —import — импортировать ключи;
- —send-keys — отправить ключи на сервер, должен быть указан сервер ключей;
- —recv-keys — получить ключи от сервера ключей;
- —keyserver — указать сервер ключей;
- —fetch-keys — скачать ключи;
- —gen-key — создать ключ;
- —sign-key — подписать ключ;
- —passwd — изменить пароль для ключа.
А теперь рассмотрим по порядку, что нам нужно для того, чтобы выполнять шифрование файлов Linux.
Шифрование файлов с помощью пароля
Симметричный шифр — самый простой и в то же время надежный способ шифрования файлов linux. Расшифровать файл сможет любой у кого есть пароль. Для использования просто запустите терминал и выполните команду gpg с параметром -c:
gpg -c имя файла
Утилита создаст файл с расширением gpg. Для расшифровки используйте:
Шифрование с использованием ключей
Асимметричный шифр более надежный так как для шифрования используется два ключа — публичный, собственно для шифрования, которым может воспользоваться любой, и приватный — для расшифровки. Причем файл можно расшифровать только с помощью приватного ключа, даже если вы зашифровали файл, без приватного ключа вы его не расшифруете.
Сначала необходимо настроить gpg, создать пару ключей, для этого наберите:
Программа задаст ряд вопросов для настройки ключа:
Выберите требуемый тип ключа.
Выберите нужный размер для ключа, обычно 2048 будет достаточно.
Выберите строк действия для ключа.
Проверьте все ли правильно.
Введите имя нового ключа, фактически, это имя пользователя, но вы будете использовать его чтобы зашифровать файл linux, поэтому выбирайте обдумано.
Введите ваш email адрес.
Описание ключа, если нужно.
Финальная проверка, затем нажмите O для завершения.
Процесс генерации может занять некоторое время. Когда все будет готово в каталоге
./gnupg появятся два файла. В файле pubring.gpg публичный ключ, а в secring.gpg приватный.
Также вы можете посмотреть список доступных ключей:
Если вы собираетесь шифровать файлы на другом компьютере необходимо экспортировать публичный ключ, для этого есть опция -а:
gpg -a -o gpgkey.asc —export имя_ключа
Затем передаем файл на целевое устройство и импортируем ключ:
gpg —import gpgkey.asc
После импорта ключа уровень доверия к нему по умолчанию будет неизвестным поэтому при каждом шифровании gpg будет спрашивать действительно ли вы доверяете этому ключу. Чтобы этого избежать нужно указать уровень доверия. Для этого воспользуйтесь редактором ключей:
gpg —edit-key Username
Для выбора уровня доверия введите команду trust:
Для своих ключей можно использовать пункт абсолютно доверяю с номером 5, вы же знаете что это именно ваш ключ.
Теперь можно переходить к шифрованию. Для того чтобы зашифровать файл linux используйте команду:
gpg -e -r ид_пользователя имя_файла
Ид пользователя нужно указывать тот что вы использовали при создании ключа. Для расшифровки используйте:
gpg -d имя_файла.gpg
Для каталогов действия аналогичны только сначала нужно создать архив с помощью tar:
tar -cf — каталог | gpg -e -r ид_пользователя
А для расшифровки:
gpg -d каталог.gpg | tar -xvf
Подписи и шифрование
Для проверки подлинности файлов может использоваться не шифрование, а подпись. Тогда на основе файла и ключа создается отпечаток, который записывается в файл. Если файл будет изменен, то отпечаток уже не совпадет.
Вы можете подписать файл с помощью опции —sign:
gpg —sign имя_файла
Если вы не хотите изменить исходный файл, то можно создать подпись в отдельном файле:
gpg -b имя_файла
Тогда в каталоге, рядом с файлом появиться файл .sig с подписью. Дальше, чтобы проверить достаточно использовать команду verify:
gpg —verify textfile.sig textfile
Если файл был изменен, то вы увидите, что подпись не сходиться.
Выводы
В этой статье мы рассмотрели как выполняется шифрование файла linux, а также настройка утилиты gpg. Шифрование gpg linux используется людьми для хранения важных данных, а механизм подписей популярен среди разработчиков дистрибутивов. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение отличное видео о том, как работает асимметричный алгоритм шифрования:
Источник