LINUX.ORG.RU
решено ФорумAdmin

git multiple ssh-keys on one machine

 ,


0

2

Всем привет!

Как сделать так, чтобы при прописанном конфиге ssh гит все равно брал тот ключ, который я ему скармливаю?

Пробовал вот так:

$ ssh-agent bash -c "ssh-add ~/.ssh/fulltest; GIT_SSL_NO_VERIFY=true git ls-remote"
Identity added: /c/Users/xxx/.ssh/fulltest (/c/Users/xxx/.ssh/fulltest)
Enter passphrase for key '/c/Users/xxx/.ssh/git_xxx':
fatal: Could not read from remote repository.

При этом я не могу (и не хочу, и не нужно) удалить из ~/.ssh/config настройки сервера гита.

★★
Ответ на: комментарий от aido

Можно ещё это попробовать добавить -F /dev/null, чтобы заставить ssh проигнорировать конфигурационный файл.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Теперь вообще ничего не находит.

GIT_SSH_COMMAND='ssh -F /dev/null -i ~/.ssh/fulltest' GIT_SSL_NO_VERIFY=true git ls-remote
git@mygit.dev: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
aido ★★
() автор топика
Ответ на: комментарий от aido

Странно, у меня так использует ключ, который указан. Может агент активен и его надо проигнорировать через SSH_AGENT_PID= SSH_AUTH_SOCK=?

xaizek ★★★★★
()
Ответ на: комментарий от dexpl

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

aido ★★
() автор топика
Ответ на: комментарий от aido

И есть поведение по умолчанию - оно в конфиге прописано.

aido ★★
() автор топика
Ответ на: комментарий от aido

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

Host case1
HostName mygit.dev
IdentityFile ~/.ssh/fulltest

Host case2
HostName mygit.dev
IdentityFile ~/.ssh/anotherkey

Host case3
HostName mygit.dev
IdentityFile ~/.ssh/yetanotherkey

GIT_SSH_COMMAND='ssh case1' GIT_SSL_NO_VERIFY=true git ls-remote

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

И ключи часто меняются. Настолько часто, что добавлять/удалять их из конфига - бессмысленно.

aido ★★
() автор топика
Ответ на: комментарий от aido
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/builder' git push
repository access denied. access via a deployment key is read-only.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/builder' git pull
Already up to date.
$ git push
Everything up-to-date
$ git pull
Already up to date.

все работает, проблема не в этом, смотри права на файл ~/.ssh/fulltest

поставь 600, иначе оно сайлентли фейлится...

drsm ★★
()
Последнее исправление: drsm (всего исправлений: 1)
Ответ на: комментарий от anonymous

Править так править, s/machine/account/

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.