Files
openclaude-LLM-local/docs/github-ssh-setup-and-troubleshooting.md
T
2026-04-20 23:18:13 +10:00

3.6 KiB
Raw Blame History

GitHub SSH setup and troubleshooting

Подробная инструкция, чтобы один раз настроить SSH и больше не вводить PAT/пароль при git pull/push.

1) Проверка текущего состояния

git remote -v
ssh -V
ls -la ~/.ssh

Если ~/.ssh пустая - это нормально, создадим ключи.

2) Создать ключ ED25519

ssh-keygen -t ed25519 -C "you@example.com"

Рекомендуемые ответы:

  • путь: ~/.ssh/id_ed25519
  • passphrase: задать (рекомендуется)

3) Запустить ssh-agent и добавить ключ

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Проверка:

ssh-add -l

4) Добавить ключ в GitHub

Показать публичный ключ:

cat ~/.ssh/id_ed25519.pub

Скопируйте его в:

  • GitHub -> Settings -> SSH and GPG keys -> New SSH key

5) Добавить github.com в known_hosts

ssh-keyscan github.com >> ~/.ssh/known_hosts
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub ~/.ssh/known_hosts

6) Перевести репозиторий на SSH remote

git remote set-url origin git@github.com:OWNER/REPO.git
git remote -v

7) Тест подключения

ssh -T git@github.com

Ожидаемое сообщение: приветствие от GitHub (без shell-доступа).


Частые ошибки и как исправить

Ошибка: Permission denied (publickey)

Проверьте:

ssh-add -l

Если "The agent has no identities", добавьте ключ снова:

ssh-add ~/.ssh/id_ed25519

Также проверьте, что публичный ключ реально добавлен в GitHub аккаунт.

Ошибка: Host key verification failed

Пересоздайте known_hosts запись:

ssh-keygen -R github.com
ssh-keyscan github.com >> ~/.ssh/known_hosts

Ошибка: "подхватывается не тот ключ"

Создайте ~/.ssh/config:

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519
  IdentitiesOnly yes

Права:

chmod 600 ~/.ssh/config

Ошибка при sudo git ...

Не запускайте git pull/push через sudo: root не видит ваш ssh-agent/ключи.

SSH работает, но всё равно просит PAT

Скорее всего remote остался HTTPS.

Проверьте:

git remote -v

Должно быть git@github.com:..., а не https://....


Полезный debug-режим

ssh -Tv git@github.com

Смотрите:

  • какой ключ предлагается (Offering public key)
  • принял ли его GitHub (Server accepts key)

Рекомендации для нескольких аккаунтов GitHub

Если личный и рабочий аккаунты:

  1. Создайте два ключа (id_ed25519_personal, id_ed25519_work)
  2. Используйте ~/.ssh/config с алиасами:
Host github-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_personal
  IdentitiesOnly yes

Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_work
  IdentitiesOnly yes
  1. Remote для проекта ставьте под нужный алиас:
git remote set-url origin git@github-work:ORG/REPO.git