← Назад к вопросам

В какой файл нужно добавить SSH-ключ

1.3 Junior🔥 191 комментариев
#Linux и администрирование#Безопасность

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Файл для добавления SSH-ключа

Основной файл, в который нужно добавить публичный SSH-ключ для авторизации на удалённом сервере, — это ~/.ssh/authorized_keys в домашней директории пользователя. Этот файл хранит список публичных ключей, которым разрешён доступ к системе. Если файла или директории .ssh не существует, их нужно создать с правильными правами доступа.

Шаги для добавления ключа

  1. Создание директории и файла (если их нет):

    mkdir -p ~/.ssh
    touch ~/.ssh/authorized_keys
    

    Важно: установить строгие права доступа, чтобы запретить запись другим пользователям.

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  2. Добавление публичного ключа: Публичный ключ (обычно содержимое файла id_rsa.pub или id_ed25519.pub) нужно добавить в конец файла authorized_keys. Это можно сделать вручную через текстовый редактор или с помощью команды:

    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    

    Каждая строка в authorized_keys соответствует одному ключу и может включать дополнительные опции, такие как ограничение по IP или командам.

  3. Проверка прав доступа: Убедитесь, что файлы принадлежат правильному пользователю и группе:

    chown -R $USER:$USER ~/.ssh
    

Важные нюансы для DevOps

  • Безопасность: Файл authorized_keys должен быть доступен только владельцу. Слабо настроенные права — частый вектор атак.
  • Автоматизация: В инфраструктуре как код (например, с Ansible, Terraform) добавление ключей автоматизируется. Например, в Ansible:
    - name: Add SSH key for user
      authorized_key:
        user: "{{ username }}"
        state: present
        key: "{{ lookup('file', '/path/to/public_key.pub') }}"
    
  • Разделение ключей: Рекомендуется использовать разные ключи для разных сред (разработка, продакшн) и сервисов.
  • Альтернативные файлы: В конфигурации SSH-сервера (sshd_config) можно изменить путь к authorized_keys через опцию AuthorizedKeysFile. Например:
    AuthorizedKeysFile /etc/ssh/authorized_keys/%u
    
  • Ключи для служб: Для служебных аккаунтов (например, git) ключи добавляются в ~/.ssh/authorized_keys соответствующего пользователя.

Пример для нескольких ключей

Файл authorized_keys может содержать несколько ключей, каждый на новой строке:

ssh-rsa AAAAB3NzaC... user@laptop
ssh-ed25519 AAAAC3Nz... user@workstation

Можно добавлять комментарии для удобства управления.

В DevOps-практиках управление SSH-ключами часто интегрируется с инструментами вроде HashiCorp Vault или Teleport для централизованного контроля доступа и аудита. Для больших команд используют инфраструктурные решения, чтобы избежать ручного редактирования authorized_keys на каждом сервере.

В какой файл нужно добавить SSH-ключ | PrepBro