GitHub: настройка нескольких учетных записей

github

3183 просмотра

3 ответа

3005 Репутация автора

Уже более 3 часов я пытаюсь настроить несколько учетных записей для GitHub и немного устал. Я испробовал почти все возможные способы описания здесь, github и статей, и ни одна из них не сработала. Я совершенно новичок в github и Unix. Так что нужна ваша помощь, чтобы это исправить. Здесь под тем, что я делаю

Я использую Windows 7 и установил два ключа SSH для двух разных учетных записей.

  1. id_rsa
  2. id_rsa_ac2

Чем создал конфигурационный файл в .sshкаталоге Пользователя и добавил ниже код

#Account one
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile /c/Projects/.ssh/id_rsa

#Account two
Host ac2.github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile /c/Projects/.ssh/id_rsa_ac2

Теперь я пытаюсь добавить удаленный с помощью приведенного ниже кода

git remote add origin git@ac2.github.com:myaccount/my.git

и нажмите ниже код

git push origin master

Но когда я пытаюсь подтолкнуть, это дает мне ошибку: Error: Permission to myaccount/my.git denied to {account}. // where it is considering default user account and not for ac2 user account fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

Большое спасибо..

Дополнительная информация:

Я проверил id_rsa_ac2и дал успешно заверенные сообщения. Но странная вещь - дать имя пользователя с оригинальной учетной записью, а не с ac2учетной записью пользователя

Hi {username!} You've successfully authenticated, but GitHub does not provide shell access. //here user id should be from ac2 but it is showing userid from id_rsa and not from id_rsa_ac2

ИНФОРМАЦИЯ: Окончательный код

@ VonC ответ сработал и добавив окончательный код в качестве моего ответа, если кто-то хочет использовать.

Автор: Code Lover Источник Размещён: 25.11.2012 04:11

Ответы (3)


2 плюса

905529 Репутация автора

Решение

Чтобы ваша конфигурация была принята во внимание, вам нужно использовать ее Hostимя в вашем удаленном адресе:

git remote add origin ac2.github.com:myaccount/my

Если вы определили HOMEпеременную среды (которая не определена по умолчанию в Windows, но определена, если вы используете msysgitgit-cmd.bat ) для каталога, в котором у вас есть каталог .ssh с его id_rsa_ac2закрытым ключом и id_rsa_ac2.pubоткрытым ключом, тогда это будет работать.

Автор: VonC Размещён: 25.11.2012 06:28

4 плюса

3005 Репутация автора

Итак, согласно ответу @ VonC, вот что я сделал.

  1. Я сгенерировал ключ ssh для другой учетной записи и добавил с id_rsa_ac2 (где ac2 для второй учетной записи)
  2. Чем просто перепроверил либо работает ssh -T ac2.github.com
  3. Созданный файл конфигурации (без расширения) в каталоге /c/Users/yourname/.ssh/

Вот код, который я использовал для файла конфигурации

#Account one
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile /c/Users/yourname/.ssh/id_rsa
    User git

#Account two
Host ac2.github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile /c/Users/yourname/.ssh/id_rsa_ac2
    User git

Так что теперь, когда вы сделали это, вы можете начать использовать обе учетные записи, как вам нужно.

для основной учетной записи я добавил удаленный в качестве источника с помощью функции « git remote add origin git@github/youraccount/rep.git толкать», git push origin masterэто загрузит ваш первый аккаунт.

Чтобы добавить удаленную учетную запись для второй (ac2) учетной записи, которая используется git remote add ac2 ac2.github/yoursecondaccount/rep.git для git push ac2 masterпринудительной отправки, будет загружена вторая (ac2) учетная запись.

Чтобы проверить, добавил ли он удаленное использование, git remote -vи укажите, хотите ли вы удалить кого-либо, кроме использования, git remote rm originгде ваш добавленный удаленный источник.

Надеюсь, что эта информация поможет другим, кто сталкивается с той же проблемой.

Еще раз спасибо @VonC

Автор: Code Lover Размещён: 26.11.2012 03:21

2 плюса

427 Репутация автора

Вот скрипт для автоматизации добавления двух учетных записей GitLab в вашу настройку.

setup-gitlab.sh

#!/bin/bash

# VERIFIED FOR FEDORA 27 MATE (Likely to work in others distros)
# Multi Account SSH for GitLab/OpenSSH Setup.
ROOT=root
if (( whoami == $ROOT ))
    then 
    echo "Run as standard user"
elif [[ -z $1 || -z $2 ]]
    then
    echo "command usage: setup-gitlab.bash workemail@domain.com homeemail@domain.com"
elif [[ ! $1 =~ .*@.*\..* ]]
    echo "Work email is not in the correct format. Must match regex .*@.*\..*"
elif [[ ! $2 =~ .*@.*\..* ]]
    echo "Home email is not in the correct format. Must match regex .*@.*\..*"
else
    HOMEEMAIL=$1
    WORKEMAIL=$2
    USRNAME=`whomai`

# /home/<username>/.ssh/
# ├── config
# ├── home-gitlab-key
# ├── home-gitlab-key.pub
# ├── known_hosts
# ├── work-gitlab-key
# └── work-gitlab-key.pub

#Executed to match the above directory.
    ssh-keygen -t rsa -C "$WORKEMAIL" -b 4096 -f work-gitlab -N ""
    ssh-keygen -t rsa -C "$HOMEEMAIL" -b 4096 -f home-gitlab -N ""

# Agent Configuration Setup (.ssh/config)
    cat >> ~/.ssh/config <<EOF
Host gitlab-work
  HostName gitlab.com
  User git
  IdentityFile /home/$USRNAME/.ssh/work-gitlab-key

Host gitlab-home
  HostName gitlab.com
  User git
  IdentityFile /home/$USRNAME/.ssh/home-gitlab-key
EOF

# Agent Setup (potentially optional???)
    cat >> ~/.bashrc <<'EOF'
eval "$(ssh-agent -s)"
for i in `ls ~/.ssh/*.pub` ; do ssh-add ${i::-4} ; done
EOF

    . .bashrc

fi

После запуска скрипта вам нужно будет скопировать содержимое двух открытых ключей, созданных для каждой учетной записи GitLab соответственно.

Еще одно примечание, при использовании git clone git@gitlab.com:<account>/<project>.gitследует заменить gitlab.comследующим образом.

git clone git@gitlab-home:<account>/<project>.git

а также

git clone git@gitlab-work:<account>/<project>.git

соответственно.

Автор: Procyclinsur Размещён: 23.12.2017 03:42
Вопросы из категории :
32x32