Глава 23 · Часть I · Git и GitHub с нуля
Настраиваем SSH
Приватный ключ остаётся на компьютере и доказывает личность, не покидая его; публичный ключ уходит на GitHub.
SafeSort · Часть 1 из 6Git и GitHub
SSH-аутентификация строится на паре ключей: приватный остаётся на вашем компьютере и никогда никому не передаётся, публичный — загружается в настройки GitHub. GitHub проверяет, что у вас есть приватная половина пары, не видя её саму.
Создаём ключ
Документированная команда — см. официальную инструкцию GitHub
ssh-keygen -t ed25519 -C "you@example.com"
На вопрос о файле для сохранения обычно достаточно нажать Enter (путь по умолчанию), а парольную фразу (passphrase) стоит задать — это дополнительная защита ключа на диске.
Добавляем ключ в ssh-agent
Документированная команда
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Добавляем публичный ключ в GitHub
Содержимое файла ~/.ssh/id_ed25519.pub копируется в
Settings → SSH and GPG keys → New SSH key.
Проверяем соединение
Документированная команда
ssh -T git@github.com
# Hi USERNAME! You've successfully authenticated, but GitHub does not provide shell access.
Это сообщение — не ошибка
GitHub не предоставляет интерактивную оболочку по SSH — фраза «does not provide shell access» означает ровно то, что она говорит: соединение и аутентификация прошли успешно, именно это и было целью проверки.
Официальная документация
Перевод и учебная адаптация официальной документации GitHub. Исходный материал — CC BY 4.0.
Коротко
- Приватный ключ никогда не покидает компьютер; на GitHub загружается только публичный.
- ssh-keygen создаёт пару, ssh-add добавляет её в ssh-agent на время сессии.
- ssh -T git@github.com проверяет соединение — сообщение об отсутствии shell-доступа означает успех.