Git продолжает спрашивать пароль - PullRequest
5 голосов
/ 02 июля 2010

Я искал и искал, что кажется часами, решение этой проблемы, и ничего, что я пробовал, не работает.Позвольте мне предвосхитить все это, сказав, что, хотя я раньше использовал * nix, я в значительной степени нуб, поэтому я уверен, что пропустил шаг в настройке Git где-нибудь.

Я установил в сети ящик Ubuntu для размещения нашего нового репозитория Git.На коробке запущены Git, Gitosis, а также ViewGit.Кажется, все настроено правильно, и я могу просмотреть репо, которое я добавил в ViewGit.Проблема в том, когда я иду клонировать репо через TortoiseGit в Windows.Когда я набираю адрес «git@10.10.0.144: /home/git/Plugins/.git/», он автоматически запрашивает пароль для пользователя «git» в окне linux.Я могу изменить этот адрес с "git @" на любое другое имя пользователя в системе, и он также запросит пароль для этого пользователя.В любом случае, ввод пароля для этого пользователя продолжает клонирование репо в локальную систему.Кроме того, функции ветвления, размещения и извлечения также будут запрашивать пароль, и, если введено, все будет работать правильно.

Я создал файл публикации RSA на окнах, которые я пробовал (через git bash).) и сохранил их в папке «keydir» gitosis, а также добавил пользовательский файл gitosis.conf (имя rsa-файла минус .pub).Я также изменил свой файл sshd_config, включив в него «AllowUsers git», а также свое имя пользователя в системе.Я в растерянности, кажется хорошей идеей дать всем, кому я хочу, доступ к этому хранилищу, IP-адрес сервера, имя пользователя, а затем пароль для этого имени пользователя, чтобы они могли загрузить некоторый код.Спасибо за помощь!

Ответы [ 3 ]

2 голосов
/ 31 марта 2011

У меня недавно была такая же проблема: я мог клонировать / отправить в репозиторий Cygwin, управляемый с помощью gitosis, но TortoiseGit продолжал запрашивать пароль пользователя git (git@192.168.1.30).Я мог бы заставить его работать, переустановив TortoiseGit (я выбрал опцию Plink во время установки), затем в настройках TortoiseGit зайдите в Network> SSH Client и измените значение на ваш бинарный файл Cygwin ssh (т.е..exe).

Изменяя это, я смог выполнить все операции из TortoiseGit, и меня попросили ввести пароль SSH, который я определил в Cygwin.

Кроме того, проверьтечто ваш gitosis.conf содержит открытые ключи, которые видны Cygwin, удаляя расширение «.pub»: если моя установка Cygwin показывает, что я myuser @ myhost , соответствующая запись в gitosis.conf должнабыть myuser @ myhost и файл с открытым ключом должен быть на keydir/myuser@myhost.pub

0 голосов
/ 12 сентября 2017

Прежде всего, URL, который вы используете для клонирования git-репо, может быть git + ssh, как в вашем примере, http / https или другими различными вещами. И SSH, и HTTP очень распространены, и люди часто используют SSH для аутентифицированных пользователей, которые смогут продвигаться в репо, и HTTP для других пользователей, которые могут клонировать и извлекать, но обычно не могут выдвигать или имеют ограничения на они могут подтолкнуть к. Если вы можете просматривать свое репо в ViewGit, вы, вероятно, можете получить HTTP-URL для своего репо, который вы можете использовать, не входя в систему, чтобы клонировать или вытащить.

Теперь, если вы хотите продолжить работу с SSH, вам нужно обратить внимание на две вещи:

Вы должны иметь возможность подключаться к серверу по SSH без ввода пароля. Если вы используете Cygwin SSH, вы должны сделать

ssh git@10.10.0.144

и подключитесь к этой машине без запроса пароля. Если вы используете PuTTY, вы сможете открыть PuTTY, ввести имя хоста и запросить имя пользователя, но затем подключиться без пароля (или использовать соответствующую командную строку putty). Обратите внимание, что когда вы делаете это успешно, может произойти одно из двух. Либо вы получаете обычную оболочку на этой машине как пользователь git. Или вы увидите короткое сообщение, вроде «SSH правильно настроен для использования git». и соединение немедленно закроется.

Если вы не можете этого сделать, то вам нужно настроить свой открытый ключ на git-сервере и загрузить свой закрытый ключ в память в своем окне Windows. Первый, вероятно, делается с помощью Gitosis. Для последнего вы будете использовать Pageant (если используете Putty) или ssh-add, если используете cygwin ssh. Если вам нужно, вы можете сначала использовать ключ без ключевой фразы. Это удалит шаг, на котором вы должны вручную загрузить ключ и ввести кодовую фразу. Пока вы не сможете подключиться через SSH без пароля, не переходите к следующему шагу.

Второе, что вам нужно сделать, это настроить, что ssh использует ваш git-клиент и как. Если вы можете подключиться, как описано выше, но ваш git-клиент не может подключиться или не может подключиться без клонирования, то вам нужно настроить это.

Основная идея заключается в том, что вы точно указываете TortoiseGit, что такое командная строка для ssh на сервере git. Вам может потребоваться проверить такие вещи, как переменная PATH и переменные среды, чтобы убедиться, что TortoiseGit может точно повторять способ подключения с помощью ssh. Этот ответ https://stackoverflow.com/a/11249914/1737957 дает основную идею.

0 голосов
/ 02 июля 2010

Около двух недель назад прошел через ту же самую вещь на моем ящике :) Вы уже прошли 90% пути.

Чтобы исправить TortoiseGit, удалите и переустановите его, но на этот раз решите использовать Putty P-Link вместо OpenSSH.Затем, когда вы идете, чтобы толкать или тянуть к проекту, проверьте маленькую вещь "autoload putty key".

...