Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версия | |||
| linux:bash:ssh-keygen_macos [2021/06/17 12:52] – dx | linux:bash:ssh-keygen_macos [2021/06/17 12:53] (текущий) – dx | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== SSH: подключение по ключу без пароля на примере macOS ====== | ||
| + | <note important> | ||
| + | |||
| + | Минимум теории и максимум хауту. За теорией лучше обратиться на сайт wikipedia или на [[https:// | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== Шаг 1. Создать пару ключей ===== | ||
| + | |||
| + | Нужно создать пару ключей: | ||
| + | |||
| + | < | ||
| + | $ ssh-keygen -t rsa -b 4096 -C " | ||
| + | Generating public/ | ||
| + | Enter file in which to save the key (/ | ||
| + | </ | ||
| + | |||
| + | Здесь | ||
| + | * -t - алгоритм шифрования | ||
| + | * -b - размера ключа | ||
| + | * -C - комментарий. Ъ администраторы, | ||
| + | |||
| + | Пр желании можно дать ключу другое имя (ключ '' | ||
| + | |||
| + | Следующий пункт passphrase. Это парольная фраза или проще говоря пароль для ключа. | ||
| + | |||
| + | Минусы. Его нужно будет вводить каждый раз, когда используется ключ.\\ | ||
| + | Очевидный плюс. Если файл окажется в чужих руках без парольной фразы использовать его не получится. Ну и не стоит использовать пароли admin111 или qwerty123. | ||
| + | |||
| + | < | ||
| + | Enter passphrase (empty for no passphrase): | ||
| + | Enter same passphrase again: | ||
| + | Your identification has been saved in / | ||
| + | Your public key has been saved in / | ||
| + | The key fingerprint is: | ||
| + | SHA256: | ||
| + | The key's randomart image is: | ||
| + | +---[RSA 4096]----+ | ||
| + | | ooo*oo.o. . .+| | ||
| + | | ..+ +.= * ..E | | ||
| + | | . o = * o..* .. | | ||
| + | |. + o * *....+o | ||
| + | | . o o *S . =.+ | | ||
| + | | . . o * | | ||
| + | | + . | | ||
| + | | o | | ||
| + | | | | ||
| + | +----[SHA256]-----+ | ||
| + | </ | ||
| + | |||
| + | ===== Шаг 2. Скопировать открытый ключ на удаленный хост ===== | ||
| + | |||
| + | Как всегда в unix есть множество вариантов для этого. | ||
| + | |||
| + | ==== Долгий путь ==== | ||
| + | |||
| + | В macOS можно скопировать содержимое файла в буфер обмена с помощью pbcopy | ||
| + | |||
| + | < | ||
| + | |||
| + | Подключаемся к удаленному серверу, | ||
| + | |||
| + | Добавляем ключ из буфера обмена. | ||
| + | |||
| + | Кстати каждый ключ должен быть на отдельной строке. И никаких пустых строк между ключами. | ||
| + | |||
| + | ==== ssh-copy-id ==== | ||
| + | |||
| + | Начиная с Sierra утилита уже есть в составе системы и не нужно [[https:// | ||
| + | |||
| + | < | ||
| + | |||
| + | или с указанием имени ключа | ||
| + | |||
| + | < | ||
| + | |||
| + | ==== cat + ssh ==== | ||
| + | |||
| + | < | ||
| + | |||
| + | ===== Шаг 3. Локальный конфиг SSH и тест подключение ===== | ||
| + | |||
| + | Добавим локальный файл конфигурации для SSH клиента в файл '' | ||
| + | |||
| + | < | ||
| + | Host rtfm | ||
| + | | ||
| + | Port 31337 | ||
| + | user dx | ||
| + | | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||
| + | * HostName – IP адрес или FQDN. | ||
| + | * User – Имя учетной записи на удаленном сервере. | ||
| + | * IdentityFile – Локальный путь к приватному ключу | ||
| + | * Host - назовем его алиасом. | ||
| + | |||
| + | Проверка подключения | ||
| + | |||
| + | < | ||
| + | |||
| + | Особый интерес представляют опции **UseKeychain** и **AddKeysToAgent**. | ||
| + | |||
| + | Пароль приватного ключа можно хранить в " | ||
| + | |||
| + | В каком-то релизе (Sierra? у меня не Linux, чтобы отслеживать это) всё сломали и Terminal теперь по-умолчанию не использует keychain. | ||
| + | |||
| + | Подробности | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | Опция **AddKeysToAgent** вышла в OpenSSH 7.2 еще в 2016 году, но я узнал про нее только сейчас. | ||
| + | |||
| + | Из changelog' | ||
| + | |||
| + | //В клиент ssh добавлена опция AddKeysToAgent, | ||
| + | |||
| + | Что еще важного в ссылках выше? | ||
| + | |||
| + | * Добавить private key вручную в keychain **ssh-add -K ~/ | ||
| + | * Проверить права **chmod 600 ~/ | ||
| + | |||
| + | Буду рад если кто-то более подробно разобрался в данном вопросе и дополнит заметку. | ||
| + | |||
| + | EOM | ||
| + | |||
| + | {{tag> | ||