Підключення до GitHub через SSH
Використовуючи протокол SSH, ви можете підключатися та аутентифікуватися на віддалених серверах і сервісах. За допомогою ключа SSH ви можете підключитися до GitHub без вказівок імені користувача або пароля, коли відправляєте локальні правки в репозиторії GitHub.
Перед створенням ключа SSH перевірте каталог ~/.ssh, можливо, у вас вже є наявні ключі. Зазвичай імена відкритих (публічних) ключів мають розширення .pub
Створення нового ключа SSH
Якщо у вас немає пари відкритих і закритих ключів або ви не хочете використовувати будь-які доступні для підключення до GitHub, то згенеруйте новий ключ SSH, використовуючи свій e-mail як ідентифікатор:
ssh-keygen -t ed25519 -C "nickname@example.com"
Примітка. Якщо ви використовуєте застарілу систему, яка не підтримує алгоритм Ed25519, використовуйте:
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
У вас буде запитано ім’я файлу (треба вводити повний шлях, бажано у /home/user/.ssh/
), та пароль
ssh-keygen -t ed25519 -C "nickname@example.com"
Generating public/private ed25519 key pair. Enter file in which to save the key (/home/user/.ssh/id_ed25519): /home/user/.ssh/nickname Created directory '/home/user/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/nickname Your public key has been saved in /home/user/.ssh/nickname.pub The key fingerprint is: SHA256:DALKyEu8zwu08jo3gPcUVjmrjOXpP4wSUy27jQHNKf5 nickname@example.com The key's randomart image is: ...
Додавання нового ключа SSH до вашого облікового запису GitHub
Скопіюйте вміст файлу ~/.ssh/nickname.pub у буфер обміну. Це ваш публічний ключ SSH.
У верхньому правому куті сторінки вашого GitHub-аккаунта натисніть на фотографію свого профілю, потім натисніть «Settings».
На бічній панелі налаштувань користувача натисніть «SSH и GPG keys».
У полі «Title» додайте описову позначку для нового ключа.
Вставте з буферу обміну зміст свого публічного ключа у поле «Key», та натисніть «Add SSH key».
Якщо буде запропоновано, підтвердіть пароль свій пароль на GitHub.
Зміна протоколу передачі даних репозиторію з HTTP на SSH
Відкрийте термінал. Перейдіть у свій свій локальний git-проект:
cd path/to/REPOSITORY
Отримайте список посилань на віддалений репозиторій.
Перевіяємо, що поточний протокол HTTP: origin https:// ...
, який ми хочемо змінити:
git remote -v
> origin https://github.com/USERNAME/REPOSITORY.git (fetch) > origin https://github.com/USERNAME/REPOSITORY.git (push)
Змінюємо протокол:
git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
Перевіряемо, що протокол змінився на GIT: origin git@github.com:
git remote -v
> origin git@github.com:USERNAME/REPOSITORY.git (fetch) > origin git@github.com:USERNAME/REPOSITORY.git (push)
Якщо раніше вводилася безпечна фраза-пароль, її може буде запитано під час команд git pull
, git push
і git merge
.
Додавання вашого ключа SSH до ssh-agent
Якщо ви не хочете вводити свою парольну фразу щоразу, коли надсилаєте або отримуєте дані з серверу GitHub, ви можете додати його до агента SSH, який керує вашими ключами і запам’ятовує вашу парольну фразу.
Запустіть ssh-агент у фоновому режимі.
eval "$(ssh-agent -s)"
> Агент pid 59566
Додайте свій закритий (приватний) ключ SSH до ssh-agent:
ssh-add ~/.ssh/nickname