SSH-ключи: как настроить вход и не вводить пароль каждый раз
За 15–25 минут можно настроить вход на сервер по SSH-ключу, добавить ключ в агент и создать короткий псевдоним подключения. Показываем команды для Linux, macOS и Windows, а также разбираем ошибки, из-за которых сервер отказывает во входе.

За 15–25 минут вы настроите вход на сервер по SSH-ключу, добавите ключ в агент и сможете подключаться по короткому имени вместо длинной команды. Парольная фраза защитит закрытый ключ, а агент позволит не вводить её при каждом подключении. Инструкция рассчитана на клиент OpenSSH 9.x; команды для Windows приведены для встроенного OpenSSH в PowerShell.
Что нужно подготовить
Понадобятся компьютер с клиентом OpenSSH, учётная запись на сервере и возможность добавить туда открытый ключ. Проверьте версию в терминале командой ssh -V. Если команда не найдена, установите или включите OpenSSH Client средствами вашей ОС. Для первого добавления ключа также нужен доступ к серверу по паролю либо к панели хостинга, где можно указать SSH-ключ.
Термин. Открытый ключ можно передавать серверу. Закрытый ключ хранится только у вас: не отправляйте его в чат, почту или репозиторий. Парольная фраза защищает закрытый ключ, если файл попадёт к постороннему.
Настройка по шагам
- Создайте пару ключей. В Linux, macOS или PowerShell выполните:
Замените адрес на комментарий, по которому узнаете ключ. Когда программа спросит путь, нажмите Enter, чтобы использовать стандартныйssh-keygen -t ed25519 -C 'you@example.com'~/.ssh/id_ed25519. Задайте парольную фразу; пустое значение удобнее, но оставляет файл без этой защиты. Проверка: в каталоге~/.sshпоявилисьid_ed25519иid_ed25519.pub. Первый — закрытый ключ, второй — открытый. - Добавьте ключ в SSH-agent. Агент хранит расшифрованный ключ в памяти сеанса, чтобы вам не приходилось вводить парольную фразу при каждом подключении. В Linux и macOS выполните:
На Windows откройте PowerShell от имени администратора, включите и запустите службу агента, затем добавьте ключ:eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519
Если политика компьютера запрещает запуск службы, обратитесь к администратору или используйте агент, который предоставляет ваша среда разработки. Проверка: командаSet-Service ssh-agent -StartupType Automatic Start-Service ssh-agent ssh-add $env:USERPROFILE\.ssh\id_ed25519ssh-add -lпоказывает отпечаток ключа. Если список пуст, ключ не добавлен в текущий агент. - Передайте серверу открытый ключ. В Linux и macOS, если доступна команда
ssh-copy-id, выполните:
Замените имя пользователя и адрес сервера на свои. Команда войдёт по паролю и добавит открытый ключ в учётную запись. В Windows скопируйте содержимое файлаssh-copy-id -i ~/.ssh/id_ed25519.pub user@server.example.com$env:USERPROFILE\.ssh\id_ed25519.pubи добавьте его через панель хостинга или попросите администратора внести строку в файл~/.ssh/authorized_keysнужного пользователя. Передавайте только файл с окончанием.pub. Проверка: панель показывает добавленный ключ либо повторное подключение больше не запрашивает пароль учётной записи. - Создайте короткое имя сервера. Откройте или создайте файл
~/.ssh/configи добавьте блок:
Укажите реальные адрес и имя пользователя. Отступы перед параметрами обязательны; порт можно добавить отдельной строкойHost work HostName server.example.com User user IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yesPort 22, если сервер использует стандартный порт. На Linux и macOS ограничьте доступ к файлам:
В Windows не меняйте ACL вручную, если ключи созданы в вашем профиле и доступны только вашей учётной записи. Проверка: командаchmod 700 ~/.ssh chmod 600 ~/.ssh/config chmod 600 ~/.ssh/id_ed25519ssh -G workвыводит параметры подключения, включая правильные имя пользователя и путь к ключу. - Проверьте вход. Выполните
ssh work. При первом подключении SSH покажет отпечаток ключа сервера и спросит, доверяете ли вы ему. Сверьте отпечаток с данными администратора или панели хостинга, прежде чем подтверждать соединение. После входа командаwhoamiпокажет имя удалённого пользователя. Проверка: вы попали на нужный сервер без ввода пароля учётной записи.
SSH-agent экономит повторный ввод парольной фразы, но не заменяет её. Закрытый ключ остаётся секретом, а доступ к агенту в текущем сеансе получает пользователь, от имени которого он запущен.
Если подключение не работает
Permission denied (publickey).Сервер не принял ключ для указанной учётной записи. Проверьте имя пользователя, адрес, что вы добавили именно файл.pubи что добавили его в нужный аккаунт. Для диагностики запуститеssh -v work: в выводе видно, какой ключ клиент предлагает серверу.Could not open a connection to your authentication agent.В этом терминале агент не запущен или переменные его окружения недоступны. Запустите агент для текущего сеанса и повторитеssh-add; новый терминал может потребовать отдельной настройки.Bad owner or permissions on ...OpenSSH считает конфигурацию или ключ доступными посторонним. В Linux и macOS проверьте права командами из шага про файл настроек. На рабочем компьютере с управляемыми политиками Windows уточните допустимые ACL у администратора.Load key ...: Permission deniedКлиент не может прочитать закрытый ключ. Убедитесь, что путь вIdentityFileверный и у вашей учётной записи есть доступ к файлу. Не исправляйте ошибку, копируя закрытый ключ на сервер.
Что не стоит менять сразу
Успешный вход по ключу ещё не означает, что можно отключать вход по паролю на сервере. Сначала проверьте ключ во второй сессии и убедитесь, что у вас есть резервный способ доступа через консоль хостинга или администратора. Иначе ошибка в правах, конфигурации или агенте может закрыть вам доступ к машине.
Не используйте один и тот же закрытый ключ на общем компьютере и не храните его в репозитории. Если ключ потерян или мог попасть к постороннему, попросите администратора удалить соответствующий открытый ключ с серверов и создайте новую пару. Инвалидация ключей в команде и настройка доступа к нескольким серверам — отдельные темы; здесь мы настроили один клиент и один сервер.
Что делать дальше
Подключите по короткому имени ещё один сервер, но задайте для него отдельный блок Host в конфигурации. Для рабочего доступа договоритесь с администратором, как добавлять и отзывать ключи, и проверьте резервный способ входа до любых изменений серверной политики. Если подключение используется в автоматизации, настройте для неё отдельный ключ и права, а не копируйте личный.
Создатель презентаций: Структура и текст каждого слайда: заголовки-утверждения, одна мысль на слайд, заметки докладчику.
Спросить за 150 ₽Источники: OpenBSD manual pages: ssh-keygen, OpenBSD manual pages: ssh_config
Частые вопросы
Нужно ли вводить парольную фразу каждый раз?
Что делать, если у меня другая версия OpenSSH?
Можно ли использовать SSH-ключ без парольной фразы?
Почему сервер всё ещё спрашивает пароль?
Можно ли отключить вход по паролю после настройки ключа?
Что делать, если потерял закрытый ключ?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.