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