Для создания RSA ключа для SSH вам потребуется использовать утилиту командной строки ssh-keygen
, которая входит в большинство дистрибутивов Linux, macOS и доступна в Windows через Git Bash или Windows Subsystem for Linux (WSL).
Создание ключа на Linux или macOS
-
Откройте терминал.
-
Введите следующую команду:
ssh-keygen -t rsa -b 4096
Здесь
-t rsa
указывает на тип ключа (RSA), а-b 4096
задаёт длину ключа в битах. 4096 бит — это рекомендуемая длина для дополнительной безопасности, хотя по умолчанию обычно используется 2048 бит. -
Укажите путь для сохранения ключа. Если вы просто нажмёте Enter, ключ будет сохранён в стандартной директории (обычно это
~/.ssh/id_rsa
). -
Задайте парольную фразу (passphrase). Это дополнительный уровень безопасности. Если вы не хотите устанавливать парольную фразу, просто нажмите Enter.
Создание ключа на Windows
Для пользователей Windows процесс аналогичен, но зависит от доступного программного обеспечения:
Использование Git Bash:
- Запустите Git Bash.
- Выполните команду:
ssh-keygen -t rsa -b 4096
- Следуйте инструкциям в терминале для сохранения ключа и создания парольной фразы, как описано выше.
Использование WSL:
- Откройте WSL.
- Выполните ту же команду, что и для Linux.
После создания ключа
После создания ключа у вас будет пара файлов в директории .ssh
вашего домашнего каталога:
-
id_rsa
— ваш приватный ключ. Никогда и никому не передавайте этот файл. -
id_rsa.pub
— ваш публичный ключ. Этот файл вы будете использовать для авторизации на серверах.
Размещение публичного ключа на сервере
Чтобы использовать ваш новый ключ для SSH-соединения с сервером, вам нужно добавить содержимое файла id_rsa.pub
в файл ~/.ssh/authorized_keys
на сервере:
- Можно скопировать содержимое файла
id_rsa.pub
и вручную вставить его в файлauthorized_keys
на сервере через редактор. - Или использовать команду
ssh-copy-id
, если она доступна:ssh-copy-id -i ~/.ssh/id_rsa.pub user@hostname
Заменитеuser@hostname
на вашего пользователя и адрес сервера.
Теперь вы должны иметь возможность подключаться к серверу через SSH, используя ваш новый ключ, без необходимости вводить пароль пользователя (за исключением парольной фразы ключа, если вы её установили).
Для добавления SSH ключа в агент аутентификации на macOS и управления ими, вы можете использовать команду ssh-add
. Вот шаги, чтобы добавить ваш SSH ключ в систему на macOS:
1. Открытие Терминала
Запустите приложение "Терминал", которое находится в папке "Программы" -> "Утилиты".
2. Добавление SSH ключа в ssh-agent
Перед добавлением вашего приватного ключа в ssh-agent, убедитесь, что ssh-agent запущен. Это можно сделать, запустив следующую команду:
eval $(ssh-agent -s)
Затем добавьте ваш приватный ключ в ssh-agent:
ssh-add -K /path/to/your/private/key
Здесь /path/to/your/private/key
— это путь к файлу вашего приватного ключа, обычно это ~/.ssh/id_rsa
, если вы не указывали другое имя файла при создании ключа.
Опция -K
(в версиях macOS до Catalina) говорит ssh-add
добавить ключ в macOS Keychain, так что вам не нужно будет вводить парольную фразу каждый раз, когда вы используете ключ. В macOS Catalina и более новых версиях, вместо -K
используйте --apple-use-keychain
.
3. Проверка добавленных ключей
Чтобы увидеть, какие ключи в данный момент загружены в ssh-agent, вы можете использовать команду:
ssh-add -l
4. Автоматическое добавление ключей при старте системы
Если вы хотите, чтобы ключи автоматически добавлялись при запуске вашего Mac, вы можете добавить команду ssh-add
в файл ~/.ssh/config
с соответствующей конфигурацией. Вот пример конфигурации, которая автоматически загружает ключи:
Создайте или отредактируйте файл ~/.ssh/config
:
nano ~/.ssh/config
sssssss
Добавьте в него следующие строки:
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
Это указывает SSH автоматически добавлять ключи в агент и использовать Keychain для хранения парольных фраз, а также указывает файл ключа по умолчанию.
5. Перезапуск терминала
После внесения изменений в файл конфигурации, закройте и снова откройте терминал, чтобы изменения вступили в силу.
Теперь ваш ключ должен автоматически добавляться в ssh-agent каждый раз, когда вы входите в систему, и вы сможете использовать SSH без необходимости ввода парольной фразы каждый раз.