Как настроить s sh ключи для доступа к github с одной машины под разными пользователями - PullRequest
3 голосов
/ 11 февраля 2020

У меня есть сервер Ubuntu с двумя пользователями

root #root account of the system
myuser #user added to sudo group 

Под пользователем root я сгенерировал s sh ключей, которые были добавлены в. s sh каталог

/root/.ssh 
         |__ id_rsa
         |__ id_rsa.pub

После этого я запускаю s sh -агент под тем же root пользователем

eval "$(ssh-agent -s)"

Чем к нему добавлен мой закрытый ключ

ssh-add .ssh/id_rsa

Он был правильно добавлен, чем я добавил свой publi c ключ к репозиторию github.

После этого я переключился на своего пользователя sudo, скопировал id_rsa и id_rsa.pub в мой домашний каталог пользователя sudo /home/myuser/.ssh/ и попытался получить доступ к репо, настроенному под учетной записью root, и система подсказала мне, что я не имеет к нему доступа. Я не понял, почему так. Может кто-нибудь подсказать мне правильно настроить доступ к github repo по одним и тем же секретным ключам двумя пользователями системы

Ответы [ 3 ]

3 голосов
/ 11 февраля 2020

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

Во-вторых, если вы добавите ключ S SH с парольной защитой к агенту s sh, работающему как root, у пользователя может не быть доступа указанному агенту, если вы используете тот же ключ S SH с sudo user.
Попробуйте запустить eval "$(ssh-agent -s)" с sudo user, чтобы запустить агент как user.

Но в целом, вся последовательность должна выполняться как одна локальная учетная запись user напрямую.
Копирование личных S SH ключей вокруг не является хорошей практикой.

У меня есть одна учетная запись, и я хочу настроить ее на использование одной и той же учетной записи github под двумя linux пользователями

Тогда:

  • под локальным пользователь аккаунта user1, сгенерируйте ключ s sh:

    ssh-keygen -t rsa -P "" -m PEM
    

(по умолчанию ~user1/.ssh/id_rsa/id_rsa.pub)

  • под локальным пользователь учетной записи user2, сгенерируйте ключ s sh:

    ssh-keygen -t rsa -P "" -m PEM
    

(по умолчанию ~user2/.ssh/id_rsa/id_rsa.pub)

Добавить оба S SH publi c ключи от вашего уникального Gi tHub account: см. « Добавление нового ключа S SH к вашей учетной записи GitHub ».
Вы можете добавить столько ключей, сколько хотите.

После этого вы сможете аутентифицироваться как эта учетная запись GitHub с вашей локальной user1 или user2, каждая из которых использует свои собственные ключи S SH (нет необходимости делить частные S SH ключи между локальными учетными записями).

В этом случае не нужно ~/.ssh/config.

1 голос
/ 11 февраля 2020

Я решил проблему, выполнив следующие действия. •

  • Удалено все git s sh клавиш для пользователя root, как рекомендовано c

  • Чем сгенерированы новые s sh пара ключей под пользователем sudo. Чем добавил его к агенту s sh и добавил ключ pub к учетной записи github

  • Чем повторил все шаги предыдущего шага

Теперь я есть два пользователя sudo на моем сервере, каждый из которых имеет свои пары ключей sh в своих каталогах /home/{USER}/.ssh и ключи публикации каждого пользователя Linux, добавленные в учетную запись github. И это отлично работает. Спасибо всем, кто помог найти решение

0 голосов
/ 11 февраля 2020

самый простой способ - создать файл конфигурации s sh

Создать файл конфигурации S SH

Если у вас несколько идентификационных файлов, создайте S SH Конфигурационный файл механизма для создания псевдонимов для ваших различных личностей.

Вы можете создать файл конфигурации S SH, используя множество параметров и различных подходов.

Формат использования записей псевдонимов в этом примере:

Host alias 
  HostName github.com 
  IdentityFile ~/.ssh/identity

Чтобы создать файл конфигурации для двух идентификаторов (workid и personalid), вы должны сделать следующее:

Open a terminal window.
Edit the ~/.ssh/config file. 

Если у вас нет файла конфигурации, создайте его.
Добавьте псевдоним для каждой комбинации идентификаторов, например:

Host workid
HostName github.com 
IdentityFile ~/.ssh/workid

Host personalid
HostName github.com 
IdentityFile ~/.ssh/personalid

Важное замечание:

Не забудьте загрузить ключи в свою учетную запись GitHub.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...