Окремий ssh доступ до кожного/окремого Git-репозиторію

Зміни до віддаленого Git-репозиторію вносяться за допомогою git push origin master. Це звісно знають усі, в т.ч. і я. Коли робиш це, Гіт запитує логін та пароль. Можна ввести й розлабитись.

Альтернативно можливо зберегти свій публічний ssh-ключ на Git-сервері і вводити лише пароль (фразу-пароль) до приватного ssh-ключа.

Після того як ми зберегли (додали) публічний ключ до серверу (звісно перед цим ці ключі потрібно генерувати) в Гіт налаштуваннях свого репозиторію додаємо налаштування, що вказуватиме де знаходиться приватний ключ і що з ним робити:

git config core.sshCommand "ssh -o IdentitiesOnly=yes -i ~/.ssh/private-key-filename-for-this-repository -F /dev/null"

не забуваємо вказати шлях до свого приватного ключа

Заводячи новий репозиторій, цю команду необхідно виконувати для кожного окремого репозиторію (поруч із командою по додаванню ім'я користувача та е-пошти).

Є інші варіанти налаштування, включаючи налаштування одного ключа для будь-якого репозиторію на Гіт-сервері, налаштування декілька ключів для одного профілю, налаштування декілька профілів і т.д. Все це заплутано й не заплутано.

Оновлення 07.09.2020

Щоб використовувати лише фразу-пароль (passphrase) при доступі до Гіт-серверу, при цьому кожного разу не вводити логін та пароль профілю, необхідно аби віддалений сервер (remote origin) вказувався у форматі SSH, а не HTTPs.

Тобто, повинно бути так:

git@gitserver.com:user/repo.git #(git remote add origin git@gitserver.com:user/repo.git.