Fingerprint has already been taken

Fingerprint has already been taken

Я отформатировал свой ноутбук под управлением Windows 7 и, пытаясь снова работать с установкой git, я установил git и исходное дерево.

Я удалил SSH-ключ из gitlab и восстановил ключ, используя ssh-keygen. Но когда я пытаюсь добавить SSH-ключ в gitlab, он выдает следующее исключение:

Из-за чего я не могу клонировать репозиторий git из исходного дерева приложения, поскольку он не может аутентифицировать ключ SSH. Я следил за запросами в группах google gitlab, но ни один из них, похоже, не разрешил мою проблему. Есть ли способ обхода или шаги для получения ключа SSH, принятого gitlab?

Сидим за HTTP-проксей. Нужен SSH. В Линухе решение элементарно — ставим corkscrew. А под виндами?

Когда впервые за 5-6 лет пришлось работать в Windows, сначала ломанулся было компилировать corkscrew под Cygwin. Потом оказалось, что есть нативная альтернатива — connect.c. (Да, это программа. И да, она так и называется — connect.c).

Страничка проекта на Битовом Ведре:

Использование такое же, как у Штопора: кидаем exe-шник, например, в C:Program FilesGit , потом в

ProxyCommand connect -H 10.128.0.100:8080 %h %p

При работе рано или поздно возникает необходимость иметь на одной машине доступ к нескольким аккаунтам на одном Git-хостинге. Например, один — личный, другой — корпоративный. Или знакомый дал пароль от своего аккаунта. Или хочется опубликовать «нехорошие» исходники, не портя реноме официального акка.

Проблема в том, что при попытке добавить SSH-ключ от другого аккаунта возникнет ошибка:

Key has already been taken
Fingerprint has already been taken

потому что «один аккаунт — много ключей», но «один ключ — один аккаунт». К счастью, проблема решается элементарно. Дело в том, что SSH позволяет создавать что-то вроде «профилей настроек», присваивая хостам псевдонимы. Это даёт возможность различать два разных обращения к одному и тому же хосту. То есть вместо обращения к, например, gitlab.com мы можем обратиться к «хосту» abcde . При этом SSH найдёт соответствующий профиль в файле

Читайте также:  Usb драйвер для windows 7 максимальная

/.ssh/config и возьмёт оттуда всю нужную информацию, включая настоящее имя хоста, ключ, имя пользователя и т.д. Так как профилей, соответствующих одному и тому же хосту, может быть сколько угодно, то и ключей для этого хоста тоже может быть сколько угодно.

1) Генерируем ключ для второго аккаунта, но помимо привычных -t и -C добавляем ещё и -f , указав другое имя файла ключа (чтобы не затереть существующий ключ):

ssh-keygen -t ed25519 -f

/.ssh/other-account-ed25519 -C "other-account@example.com"

2) Создаём в папке

/.ssh файл config , если его там ещё нет, и приводим его в следующий вид:

Host gitlab
HostName gitlab.com
User git
IdentityFile

/.ssh/id_ed25519
IdentitiesOnly yes

Host gitlab-other
HostName gitlab.com
User git
IdentityFile

/.ssh/other-account-ed25519
IdentitiesOnly yes

Обратите внимание на часто забываемую строчку IdentitiesOnly yes . Без неё, в случае если в папке

/.ssh уже есть файлы с названиями по умолчанию (например identity , id_dsa , id_ecdsa или id_rsa ) эти файлы будут использованы сначала, а уже потом — то, что указано с помощью IdentityFile . Так происходит потому, что IdentityFile не указывает путь к ключу, а добавляет ключ к списку (см. вон там).

3) Указываем Git’у в качестве Git-сервера то, что мы написали после слова Host (на мой взгляд, логичнее было бы назвать это поле «Alias» или типа того):

git remote add other git@gitlab-other:user/project.git

Вот и всё. Можно добавлять в разные аккаунты разные ключи и проверять, всё ли работает:

PTY allocation request failed on channel 0

Это нормально — Git-хостинги обеспечивают лишь поддержку протокола GIT поверх SSH, а не сам SSH (т.е. удалённую оболочку).

[UPD 08.07.2019]: начиная с определённой версии SSH, можно вместо -t («выделить псевдо-терминал») использовать ключ -T («Не выделять псевдо-терминал»), и получить вместо невнятной ругани приветствие в форме

Читайте также:  Http go mail ru sct 1

I formatted my Windows 7 laptop and in an attempt to have git setup working again, I installed git and source tree application.

I deleted the SSH Key from gitlab and regenerated the key using ssh-keygen. But when I try to add the SSH Key at gitlab, it throws the following exception :

Because of which I am unable to clone the git repository from source tree application since it is unable to authenticate the SSH key.I followed queries at google groups of gitlab but none of them seem to resolve my issue. Is there any workaround or steps to get the SSH key accepted by gitlab?

Ссылка на основную публикацию
Eax 1300 pro 256 mb
ATI, наконец, выпустила на рынок новое поколение видеокарт. Новое семейство содержит три новых видеочипа: R520, RV530 и RV515. Нетрудно догадаться,...
Cpu amd fx 8300
Описание AMD начала продажи AMD FX-8300 в октябре 2012. Это десктопный процессор на архитектуре Vishera, в первую очередь рассчитанный на...
Cpu hash что это
AIDA64 имеет множество тестов, которые возможно применять для оценивания состояния разных составляющих компьютера или техники в целом. Это искусственные тесты,...
Ebay как отправить товар из россии
Вопросов, связанных с торговлей на площадке eBay у жителей России возникает бесконечное множество. Особенно в нынешних экономических реалиях, когда продажи...
Adblock detector