Git push требует имя пользователя и пароль

Я клонировал git-репозиторий со своей учетной записи Github на мой компьютер.

Я хочу работать как с моим ПК, так и с ноутбуком, но с одной учетной записью Github.

Когда я пытаюсь нажать или вытащить из Github с помощью моего компьютера, ему требуются имя пользователя и пароль, но не при использовании ноутбука!

Я не хочу вводить свое имя пользователя и пароль каждый раз, когда я взаимодействую с источником. Что мне здесь не хватает?

30 ответов

Решение

Распространенной ошибкой является клонирование с использованием по умолчанию (HTTPS) вместо SSH. Вы можете исправить это, перейдя в свой репозиторий, нажав "Клонировать или загрузить", затем нажав кнопку "Использовать SSH" над полем URL и обновив URL-адрес вашего удаленного источника, например:

git remote set-url origin git@github.com:username/repo.git

Это задокументировано на GitHub: переключение удаленных URL-адресов с HTTPS на SSH.

Постоянная аутентификация в репозиториях Git,

Выполните следующую команду, чтобы включить кэширование учетных данных:

$ git config credential.helper store
$ git push https://github.com/repo.git

Username for 'https://github.com': <USERNAME>
Password for 'https://USERNAME@github.com': <PASSWORD>

Использование также должно указывать срок действия кэширования,

git config --global credential.helper 'cache --timeout 7200'

После включения кэширования учетных данных оно будет кэшироваться в течение 7200 секунд (2 часа).

Я только столкнулся с той же самой проблемой, и самое простое решение, которое я нашел, состояло в том, чтобы использовать URL-адрес SSH вместо HTTPS:

ssh://git@github.com/username/repo.git

И не это

https://github.com/username/repo.git

Теперь вы можете проверить только с SSH Key вместо username а также password,

Помимо перехода на SSH, вы также можете продолжать использовать HTTPS, если не возражаете, чтобы ввести свой пароль в виде открытого текста. Поместите это в свой ~/.netrc и он не будет спрашивать ваше имя пользователя / пароль (по крайней мере, в Linux и Mac):

machine github.com
       login <user>
       password <password>

Дополнение (см. Второй комментарий VonC): в Windows имя файла %HOME%\_netrc,

Также прочитайте первый комментарий VonC на случай, если вы хотите зашифровать.

Еще одно дополнение (см. Комментарий user137717), которое вы можете использовать, если у вас git 1.7.10 или новее.

Кэшируйте свой пароль на github в git с помощью помощника по учетным данным:

Если вы клонируете репозитории GitHub с использованием HTTPS, вы можете использовать помощник по учетным данным, чтобы Git запомнил ваше имя пользователя и пароль GitHub при каждом обращении к GitHub.

Это также работает на Linux, Mac и Windows.

Для непосвященных, которых смущают предыдущие ответы, вы можете сделать:

git remote -v

который ответит что-то вроде

origin  https://yourname@github.com/yourname/yourrepo.git (fetch)
origin  https://yourname@github.com/yourname/yourrepo.git (push)

тогда вы можете выполнить команду, предложенную многими другими, но теперь вы знаете свое имя и ваш репо сверху, так что вы можете просто вырезать и вставить yourname/yourrepo.git сверху в

git remote set-url origin git@github.com:yourname/yourrepo.git

Если вы используете ssh и ваш закрытый ключ зашифрован парольной фразой, вам все равно будет предложено ввести пароль / пароль для секретного ключа, когда вы будете выполнять сетевые операции с Git, например push, pull, а также fetch,

Используйте ssh-agent для сохранения пароля и пароля.

Если вы хотите избежать ввода пароля каждый раз, вы можете использовать ssh-agent чтобы сохранить ваши парольные идентификационные данные секретного ключа один раз за сеанс терминала, как я объясняю в моем ответе на Не удалось открыть соединение с вашим агентом аутентификации:

$ eval `ssh-agent -s`
$ ssh-add

В Windows msysgit Bash вам нужно оценить вывод ssh-agent, но я не уверен, что вам нужно сделать то же самое в других средах разработки и операционных системах.

ssh-add ищет закрытый ключ в вашем доме .ssh папка называется id_rsa, которое является именем по умолчанию, но вы можете передать путь к файлу ключу с другим именем.

Убить агента

Когда вы закончите сеанс терминала, вы можете выключить ssh-agent с флагом убийства -k:

$ ssh-agent -k

Как объяснено в ssh-agent руководство:

-k

Убить текущего агента (заданного переменной среды SSH_AGENT_PID).

Дополнительный тайм-аут

Кроме того, он может принимать необязательный параметр времени ожидания, например, так:

$ ssh-add -t <timeout>

где <timeout> имеет формат <n>h за <n> часов, <n>m за <n> минут и тд.

Согласно ssh-agent руководство:

-t life

Установите значение по умолчанию для максимального времени жизни идентификаторов, добавляемых к агенту. Время жизни может быть указано в секундах или в формате времени, указанном в sshd_config (5). Время жизни, указанное для идентификатора с помощью ssh-add(1), переопределяет это значение. Без этой опции максимальное время жизни по умолчанию - навсегда.

Смотрите эту страницу для большего количества форматов времени.

Предупреждение о безопасности для пользователей Cygwin

Пользователи Cygwin должны знать о потенциальной угрозе безопасности при использовании ssh-agent в Cygwin:

люди должны быть осведомлены о потенциальных опасностях ssh-agent в cygwin [1], хотя при локальном netstat и удаленном сканировании портов не похоже, что порт, указанный в /tmp/ssh-foo, доступен кому-либо...?

[1]: http://www.cygwin.com/ml/cygwin/2001-01/msg00063.html

И по приведенной ссылке:

Тем не менее, обратите внимание, что доменные сокеты cygwin в unix являются ФУНДАМЕНТАЛЬНО НЕДОСТАТОЧНЫМИ, и поэтому я настоятельно ОБЯЗУЮСЬ использовать ssh-agent под Cygwin.

когда вы запускаете ssh-agent под cygwin, он создает сокет AF_UNIX в /tmp/ssh-$USERNAME/ каталог. под cygwin сокеты AF_UNIX эмулируются через сокеты AF_INET. Вы можете легко увидеть, что если вы посмотрите в /tmp/ssh-$USERNAME/agent-socket-* файл через блокнот. вы увидите что-то вроде

!<socket >2080

затем беги netstat -a и сюрприз! у вас есть программа, слушающая порт 2080. это ssh-agent. когда ssh получает запрос RSA от сервера, он ссылается на соответствующий /tmp/ssh-$USERNAME/agent-socket-* (в нашем случае под cygwin это означает, что localhost:2080) и просит ssh-agent обработать запрос RSA с помощью имеющегося у него закрытого ключа, а затем просто передает ответ, полученный от ssh-agent, на сервер.

под unix такой сценарий работает без проблем, потому что ядро ​​unix проверяет разрешения, когда программа пытается получить доступ к сокету AF_UNIX. Однако для сокетов AF_INET соединения являются анонимными (читай "небезопасно"). Представьте, что у вас запущен Cygwin ssh-agent. злонамеренный хакер может портить ваш ящик, найти открытый порт, используемый ssh-agent, открыть соединение с вашим ssh-сервером, получить от него запрос RSA, отправить его вашему ssh-agent через обнаруженный им открытый порт, получить ответ RSA, отправить его в ssh сервер и вуаля, он успешно вошел на ваш сервер как вы.

Источник: Настройка Git

Следующая команда сохранит ваш пароль в памяти на некоторое время.
(Для git 1.7.10 или новее.)

$ git config --global credential.helper cache
# Set git to use the credential memory cache

$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)

Когда вы используете https для git pull & push, просто настройте remote.origin.url для вашего проекта, чтобы избежать ввода имени пользователя (или / и пароля) каждый раз, когда вы нажимаете.

Как настроить remote.origin.url :

Формат URL:
    https://{имя пользователя: пароль @} {github.com/ владелец}/{} репо

Параметры в URL:
* имя пользователя
    необязательно, имя пользователя для использования при необходимости аутентификации,
    если указано, нет необходимости вводить имя пользователя снова, когда требуется аутентификация,
    не используйте электронную почту, используйте ваше имя пользователя без "@", иначе URL не может быть проанализирован правильно,
* пароль
    необязательно, пароль для использования при необходимости аутентификации,
    если указано, нет необходимости вводить пароль снова, когда требуется аутентификация,
    совет:
        это значение хранится в виде простого текста, поэтому из соображений безопасности не указывайте этот параметр,
* 

например
    git config remote.origin.url https: //eric@github.com/eric/myproject


@Update - использование ssh

Я думаю, используя ssh протокол является лучшим решением, чем https, хотя шаг установки немного сложнее.

Грубые шаги:

  • Создание ключей SSH с помощью команды, например ssh-keygen на Linux, на окнах msysgit предоставить аналогичные команды.
  • Храните закрытый ключ на локальном компьютере в нужном месте, например ~/.ssh, И добавьте его в агент ssh через ssh-add команда.
  • Загрузите открытый ключ на сервер git.
  • + Изменить remote.origin.url Git хранилище для ssh стиль, например git@gitlab.com:myaccount/myrepo.git
  • Затем, когда вы тянете или нажимаете, нет необходимости вводить имя пользователя или пароль.

Подсказки:

  • Если у вашего ключа ssh есть фраза-пароль, то вам нужно вводить его при первом использовании ключа после каждого перезапуска вашего компьютера, по умолчанию.

@Update - переключаться между https а также ssh протокол.

Просто поменяй remote.origin.url будет достаточно, или вы можете редактировать repo_home/.git/config непосредственно изменить значение (например, используя vi на Linux).

Обычно я добавляю строку для каждого протокола и закомментирую один из них, используя #,

например

[удаленное "происхождение"]
        url = git@gitlab.com:myaccount/myrepo.git
        # url = https://myaccount@gitlab.com/myaccount/myrepo.git
        fetch = +refs/heads/*:refs/remotes/origin/*

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

Посетить Settings -> Developer Settings -> Personal Access Tokensстраницу в GitHub (https://github.com/settings/tokens/new) и сгенерируйте новый токен со всеми разрешениями Repo:

Затем на странице отобразится новое значение токена. Сохраните это значение и используйте его вместо пароля при отправке в репозиторий на GitHub:

> git push origin develop
Username for 'https://github.com': <your username>
Password for 'https://<your username>@github.com': <your personal access token>

Вы можете кэшировать свой пароль GitHub в Git:

Просто следуйте инструкциям из официальной документации GitHub.

Следуя инструкциям, приведенным в приведенной выше ссылке, вы сможете загружать / извлекать данные из репозитория, не вводя имя пользователя и пароль каждый раз.

Для Mac OS

  1. Зайдите в свой Github Settings -> Developer Settings -> Personal Access Tokensстраницу в GitHub (https://github.com/settings/tokens/new) и сгенерируйте новый токен со всеми разрешениями Repo
  2. Найдите Keychain Access на вашем Mac -> найдите github.com -> щелкните Show password затем вставьте token вы только что скопировали.
  3. Перейдите в интерфейс командной строки, он снова запросит имя пользователя и пароль, введите свое имя пользователя Github и вставьте токен в качестве пароля, и все остальное время, когда вы используете интерфейс командной строки, все должно быть в порядке.

То, что работало для меня, было редактировать .git/config и использовать

[remote "origin"]
        url = https://<login>:<password>@gitlab.com(...).git

Само собой разумеется, что это небезопасный способ хранения вашего пароля, но есть среды / случаи, когда это не может быть проблемой.

Вот еще один вариант:

Вместо того чтобы писать

git push origin HEAD

Вы могли бы написать:

git push https://user:pass@yourrepo.com/path HEAD

Очевидно, что для большинства оболочек это приведет к кэшированию пароля в истории, так что имейте это в виду.

Если ключ ssh или.netrc не работает для вас, тогда другое простое, но менее безопасное решение, которое может работать для вас, - это https://git-scm.com/docs/git-credential-store - Помощник для хранения учетных данных на диске.

git config --global credential.helper store

По умолчанию учетные данные будут сохранены в ~/.git-credentials, Он будет создан и записан.

Обратите внимание, что использование этого помощника будет хранить ваши пароли в незашифрованном виде на диске, защищенные только разрешениями файловой системы. Если это не может быть приемлемым обменом безопасности.

У меня была такая же проблема.

поэтому измените файл.git/config из моего проекта

url = https://github.com/<your-user-here>/<your-repo-here>

в

url = git@github.com:<your-user-here>/<your-repo-here>

и добавьте открытый ключ ssh в профиль git, который находится в настройке.

для открытого ключа ssh

cat ~/.ssh/id_rsa.pub

Если вы клонировали HTTPS вместо SSH и столкнулись с проблемой с запросом имени пользователя и пароля при извлечении, push и выборке. Решить эту проблему можно просто за UBUNTU

Шаг 1: перейдите в корневой каталог

cd ~/

создать файл.git-credentials

Добавьте это содержимое в этот файл вместе с вами usename password а также githosting URL

https://user:pass@example.com

Затем выполните команду

git config --global credential.helper store

Теперь вы сможете без проблем извлекать все детали из репозитория.

Обновление файла конфигурации git напрямую: (если вы не хотите запоминать необычные команды)

Открыть свой .git/config файл в вашем любимом текстовом редакторе. Он будет в папке, которую вы клонировали, или в репозитории, в котором вы выполняли git init. Перейдите в это репо. .git скрытая папка, нажав ctrl + h должен показать скрытую папку, (ls -a в терминале).

Вот образец .git/config файл, скопируйте и вставьте эти строки и обязательно обновите эти строки с вашей информацией git.

[user]
        name = Tux
        email = tux@gmail.com
        username = happy_feet

[remote "origin"]
        url = https://github.com/happy_feet/my_code.git
        fetch = +refs/heads/*:refs/remotes/origin/*

Измените часть URL со следующим форматом для SSH

url = git@github.com:happy_feet/my_code.git

(вышеупомянутые форматы не меняются на различных удаленных серверах git, таких как github или bitbucket, то же самое, если вы используете git для контроля версий):

Примечание: способ подключения SSH к удаленному хранилищу git потребует от вас добавления вашего открытого ключа SSH на удаленный сервер git (например, github или bitbucket, найдите на странице настроек ключи SSH)

Чтобы узнать, как сгенерировать ключи SSH, обратитесь по адресу : https://confluence.atlassian.com/bitbucketserver/creating-ssh-keys-776639788.html

Для пользователей Windows Git, после запуска git config --global credential.helper store, если он по-прежнему запрашивает пароль, вам лучше проверить, куда записывается конфигурация. используя эту команду

git config --list --show-origin

В моем случае, вручную отредактируйте файл конфигурации 'C:\Program Files\Git\mingw64\etc\gitconfig', добавив следующий текст, все работает.

[credential] helper = store

У вас в основном есть два варианта.

Если вы используете одного и того же пользователя на обеих машинах, вам необходимо скопировать ключ.pub на ваш компьютер, чтобы github знал, что вы один и тот же пользователь.

Если вы создали новый файл.pub для своего ПК и хотите относиться к машинам как к другим пользователям, вам необходимо зарегистрировать новый файл.pub на веб-сайте github.

Если это все еще не работает, это может быть потому, что ssh не настроен правильно и ssh не может найти расположение ваших ключей. Пытаться

ssh -vv username@github.com

Чтобы получить больше информации, почему SSH не работает.

Вот что сработало для меня:

git remote set-url origin https://username@github.com/username/reponame.git

Пример:

git remote set-url origin https://jsmith@github.com/jsmith/master.git

Перечислите ваши текущие ключи SSH:


Создайте новый ключ SSH:

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

где вы должны заменить your_email@example.comс вашим адресом электронной почты GitHub.
Когда будет предложено Enter a file in which to save the key, нажмите Enter.
На Enter passphrase (empty for no passphrase)- просто нажмите Enter(для ввода пустой ключевой фразы).
Снова перечислите свои SSH-ключи:

      ls -l ~/.ssh

Файлы id_ed25519 а также id_ed25519.pubтеперь должны были быть добавлены.
Запустите ssh-agent в фоновом режиме:

      eval $(ssh-agent -s)

Добавьте свой закрытый ключ SSH в ssh-agent:

      ssh-add ~/.ssh/id_ed25519

Затем выведите открытый ключ на экран терминала:

      cat ~/.ssh/id_ed25519.pub

Скопируйте вывод в буфер обмена ( Ctrl+ Insert).
Перейти к https://github.com/<your-github-username>и войдите под своим именем пользователя и паролем.
Щелкните свой аватар GitHub в правом верхнем углу, а затем выберите «Настройки» . На левой панели щелкните SSH и ключи GPG . Нажмите зеленую кнопку Новый ключ SSH и вставьте открытый ключ SSH в текстовое поле с надписью « Ключ» . Используйте описательный заголовок, который сообщает, с какого компьютера вы будете использовать этот ключ SSH. Щелкните Добавить ключ SSH .


Если ваш текущий локальный репозиторий был создан с http и именем пользователя , его необходимо воссоздать, чтобы он стал совместимым с SSH.
Сначала убедитесь, что у вас чистое рабочее дерево, чтобы не потерять работу:

      git status

потом cd .. в родительский каталог и rm -fr <name-of-your-repo>.
Наконец, клонируйте новую копию, которая использует SSH вместо имени пользователя / пароля:

      git clone git@github.com:[your-github-username]/[repository-name].git

Ссылки:
https://docs.github.com/en/free-pro-team@latest / github / authentication-to-github / generate-a-new-ssh-key-and-add-it-to-the- ssh-agent
https://docs.github.com/en/free-pro-team@latest / github / authentication-to-github / add-a-new-ssh-key-to-your-github-account

Вам нужно выполнить 2 шага -

1) git remote remove origin
2) git remote add origin git@github.com:NuggetAI/nugget.git

Обратите внимание, что Git URL является ssh URL, а не https URL. Какой вы можете выбрать здесь.

Обновление для HTTPS:

Github запустил новую программу для Windows, которая хранит ваши учетные данные при использовании HTTPS:

Использовать:

Загрузите программу отсюда

Как только вы запустите программу, она отредактирует ваш .gitconfig файл. Проверьте, правильно ли отредактировано .gitconfig если у вас есть несколько из них. Если он не редактировал правильный, добавьте следующее к вашему .gitconfig

[credential]
    helper = !'C:\\Path\\To\\Your\\Downloaded\\File\\git-credential-winstore.exe'

ПРИМЕЧАНИЕ разрыв строки после [credential], Требуется.

Откройте клиент командной строки и попробуйте git push origin master один раз. Если он запрашивает у вас пароль, введите его и все. Пароль сохранен!

По состоянию на 2021 год существует безопасное и удобное кроссплатформенное решение для удаленных HTTPS-доступов. Больше не нужно вводить пароли! Больше никаких ключей SSH! Никаких токенов личного доступа!

Установите Git Credential Manager , разработанный GitHub (загрузки ). Он поддерживает аутентификацию OAuth в браузере без пароля для GitHub, BitBucket, Azure и GitLab. Это означает, что вы можете включить двухфакторную аутентификацию на GitHub и других платформах, что значительно повысит безопасность ваших учетных записей.

При нажатии вам предлагается выбор методов аутентификации:

      > git push
Select an authentication method for 'https://github.com/':
  1. Web browser (default)
  2. Device code
  3. Personal access token
option (enter for default): 1
info: please complete authentication in your browser...

В Linux требуется небольшая настройка . Следующие учетные данные кэшируются в памяти на 20 часов, поэтому вам нужно проходить аутентификацию не чаще одного раза в день.

      git-credential-manager-core configure
git config --global credential.credentialStore cache
git config --global credential.cacheoptions --timeout 72000

Опытные пользователи, знакомые с gnome-keyring или KWallet, могут предпочесть изменить хранилище учетных данных на libsecret.

Косметическая конфигурация (документы ):

  1. Предпочтительно выбирать метод аутентификации на терминале, а не в графическом интерфейсе (меньше кликов)
  2. Всегда используйте метод браузера, а не спрашивайте каждый раз (даже меньше нажатий клавиш)
      git config --global credential.guiPrompt false
git config --global credential.gitHubAuthModes browser

Снимок экрана авторизации GCM для доступа к вашей учетной записи GitHub (виден только в первый раз):

Скриншот последующей аутентификации (просматривается один раз в день). Нет необходимости в кликах.

Цитата

Если у вас возникли проблемы с пуш-кодом $ git, запрашивающим имя пользователя и пароль, выполните следующую процедуру:

      Login to your profile.
Go to settings

click developer settings
->Personal access tokens
--> note: access token
--->Select scopes: checkbox on repo
----> Generate token
-----> Make sure to copy and store it safely if you intend to reuse it.

*** use the generated token as password during pushing code for next 30days ***

***HAPPY CODING***

Если вы используете git (например, git bash) под Windows (и если вы не хотите переключаться с https на ssh)

Вы также можете использовать https://github.com/Microsoft/Git-Credential-Manager-for-Windows

Это приложение будет хранить имя пользователя и пароль для вас...

Как говорили многие пользователи, вам просто нужно изменить URL вашего git-репозитория с https на SSH.

Если вы не сгенерировали SSH-ключ на своей машине, то вам придется это сделать.

Так же, как дополнительная информация, после внесения этого изменения я все еще получал ту же ошибку: "Отказано в доступе".

В моем случае проблема заключалась в том, что я использовал оболочку Windows для выполнения команды ngh; так как эта команда должна открыть приглашение для запроса фразы SSH, а оболочка Windows не открывает такие запросы, проверка подлинности просто не удалась.

Итак, мне просто нужно было открыть оболочку git и выполнить там команду ngh, помещать фразу SSH в запрос каждый раз, когда она его запрашивала, и "вуаля"... Это просто отлично работало!

Проверьте свою версию git и обновите ее. Тогда исправят проблему

$ git update-git-for-windows

Ваша версия git и/или SSH слишком старая.

На меня повлияло то, что ssh и git всегда запрашивали пароли на моем Macbook Pro 2010 года под управлением Snow Leopard.

Первоначально я не мог подключиться к своему серверу по SSH.

я включилHostKeyAlgorithms +ssh-rsa,ssh-dssна моем сервере (/etc/ssh/sshd_config), где я размещаю свои репозитории git и ssh в своих учетных записях. Благодаря этому изменению я смог использовать имя пользователя и пароль для подключения к git и через ssh.

Для справки, последние версии ssh и git в OS X 10.6.8:

git: 1.7.5.4

ssh: OpenSSH_5.2p1

Я попробовал добавить ключ DSA, но это не сработало. Я также рассматривал возможность обновления ключа RSA1, но оказалось, что моя версия SSH слишком старая. Я искал Homebrew на предмет снежного барса, но получил проблемы с сертификатом.

Мое решение — установить MacPorts для Snow Leopard https://github.com/macports/macports-base/releases/download/v2.8.1/MacPorts-2.8.1-10.6-SnowLeopard.pkg

У меня было установлено обновление xcode 4.2, которое может быть трудно найти; не уверен, что это необходимо. После установки MacPorts запустите

      sudo port install git
sudo port install ssh

Возможно, вам придется включить rsync, но выходные данные подскажут вам, как это сделать.

Мои версии сейчас2.41.0для git и для ssh. Я воссоздал 4096-битный ключ RSA и скопировал его на свой сервер (и в GitHub) и теперь могу и то, и другое.sshиgit pushвообще без запроса пароля!

Надеюсь, это поможет другим в моем положении.

Изменить: Gentoo упомянул, что начиная с OpenSSH 8.8 поддержка RSA 1 отключена (мой серверOpenSSH_9.3p1). Его можно снова включить, добавив это:

      HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa

Если вы используете PuTTY < 0,75, это повлияет на вас.

    # create the company identity file
    ssh-keygen -t rsa -b 4096 -C "first.last@corp.com"
    # save private key to ~/.ssh/id_rsa.corp, 
    cat ~/.ssh/id_rsa.corp.pub # copy paste this string into your corp web ui security ssh keys

    # create your private identify file
    ssh-keygen -t rsa -b 4096 -C "me@gmail.com"
    # save private key to ~/.ssh/id_rsa.me, note the public key ~/.ssh/id_rsa.me.pub
    cat ~/.ssh/id_rsa.me.pub # copy paste this one into your githubs, private keys

    # clone company internal repo as follows
    GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.corp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
    git clone git@git.in.corp.com:corp/project.git

    export git_msg="my commit msg with my corporate identity"
    git add --all ; git commit -m "$git_msg" --author "MeFirst MeLast <first.last@corp.com>"
    GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.corp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
    git push 

    # clone public repo as follows
    GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.corp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
    git clone git@github.com:acoolprojectowner/coolproject.git

    export git_msg="my commit msg with my personal identity"
    git add --all ; git commit -m "$git_msg" --author "MeFirst MeLast <first.last@gmail.com>"
    GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.me -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
    git push 

    # stop :: how-to use different ssh identity files
Другие вопросы по тегам