Git SSH Windows — пошаговое руководство
Настроим пошагово Git SSH для Windows 10. Это позволит вам выполнять команды git без ввода пароля от своей учетной записи GitHub.
- Генерация ключа SSH.
- Добавление SSH-ключа в ssh-agent.
- Добавление ключа SSH в учетную запись GitHub.
Генерация ключа SSH
Откройте bash/терминал . Добавьте следующий текст, подставив свой адрес электронной почты GitHub .
Будет создан ключ ssh , используя e-mail в качестве метки.
Когда вам будет предложено «Введите файл, в котором вы хотите сохранить ключ», нажмите Enter . Это установит в местоположение по умолчанию.
Enter a file in which to save the key (/c/Users/you/.ssh/id_rsa):[Press enter]
Далее введите безопасную фразу-пароль дважды или просто нажмите Enter .
Enter passphrase (empty for no passphrase): [Type a passphrase]Enter same passphrase again: [Type passphrase again]
Добавление SSH-ключа в ssh-agent
Чтобы запустить ssh-агент введите следующую команду.
На экране отобразится похожая строка.
Добавим свой закрытый ключ SSH в ssh-agent . Если вы создали свой ключ с другим именем (или добавляете существующий ключ с другим именем), замените в команде id_rsa на имя вашего файла закрытого (приватного) ключа.
Ключ будет успешно добавлен в ssh-агент .
Добавление ключа SSH в учетную запись GitHub
Мы сгенерировали у себя на компьютере закрытый ключ SSH и добавили его в ssh-агент . Теперь нам необходимо добавить SSH ключ в учетную запись GitHub.
Сейчас нам необходимо скопировать SSH ключ в буфер обмена.
Способов есть несколько, но я же вам предлагаю следующее решения для Windows 10: введите команду ниже.
Прямо в терминале вы увидите содержимое необходимого файла с ключем. Скопируйте его в буфер.
Теперь зайдите на вашу страницу GitHub Settings .
Перейдите во вкладку SSH and GPG keys и нажмите на кнопку New SSH key для добавления SSH ключа в вашу учетную запись GitHub.
В поле Title добавьте заголок для данного ключа. Например, если вы захотите настроить SSH доступ на нескольких устройствах, то вы будите понимать какой ключ принадлежит какому устройству.
В поле Key добавьте свой ssh-ключ, который вы скопировали в буфер обмена на предыдущем шаге.
Нажмите Add SSH key .
Для подтверждения вам потребуется ввести свой пароль от учетной записи GitHub .
На этом настройка SSH для вашего устройства завершена, теперь вы можете работать с git без ввода пароля от своей учетной записи.
Если вам понравилась данная статья, можете прочитать как настроить моментальную загрузку сайта на хостинг и синхронизацию файлов.
Надеюсь, вам понравилась данная информация. Если вам интересна тема web-разработки, то можете следить за выходом новых статей в Telegram.
Git with SSH on Windows
I’ve went through the excellent guide provided by Tim Davis which is about configuring Git to work with SSH under Windows in order to produce a Git Server in order to have a main place for my DVCS.
I am in the process of creating a clone for my project. I’ve went through all the steps till this point, but I keep getting this from TortoiseGit:
and nothing gets cloned.
BTW: The TortoisePLink comes up just before this message appears and asks me: “ login as: ” ( I thought that this info is given in the command, i.e: Administrator@blahblah .
My home variable is set to the correct place: From a Git Bash shell:
I’ve also tried using Putty’s plink instead of TortoisePLink (in both Git’s and TortoiseGit ’s installation). This time the error was narrowed down to:
6 Answers 6
I fought with this problem for a few hours before stumbling on the obvious answer. The problem I had was I was using different ssh implementations between when I generated my keys and when I used git.
I used ssh-keygen from the command prompt to generate my keys and but when I tried «git clone ssh://. » I got the same results as you, a prompt for the password and the message «fatal: The remote end hung up unexpectedly».
Determine which ssh windows is using by executing the Windows «where» command.
The second line tells you which exact program will be executed.
Next you need to determine which ssh that git is using. Find this by:
And now you see the problem.
To correct this simply execute:
To check if changes are applied:
Now git will be able to use the keys that you generated earlier.
This fix is so far only for the current window. To fix it completely you need to change your environment variable.
- Open Windows explorer
- Right-click Computer and select Properties
- Click Advanced System Settings link on the left
- Click the Environment Variables. button
- In the system variables section select the GIT_SSH variable and press the Edit. button
- Update the variable value.
- Press OK to close all windows
Now any future command windows you open will have the correct settings.
Windows.Git.Cygwin.SSH.Gitolite и руководство пользователя
1. Для чего эта статья?
Желание получить возможности Git на Windows платформе материализовало стремление повозиться с разными схемами настройки.
2. Осознание
Нужно осознать, что придется использовать программы Cygwin,SSH,GitExtenstions,Git,Gitolite
Cygwin — это программа, которая эмулирует окружение Linux.У нее есть свое черное окно, выглядящее и работающие как окно терминала Linux.
MsysGit — это программа для эмуляции git окружения, но без ssh сервера, поэтому мы не будем использовать на сервере репозитариев. Используем только для клиентов репозитария.
SSH — это программа для использования ssh подключений из ssh клиентов, доступная для всех операционных систем.
SSH сервер — это программа принимающая подключения от ssh клиентов.
Git — это набор программ, включая сам git, для работы с репозиториями файлов.
Gitolite — это программа, обертывающая git, и реализующая функции управления репозитариями: управление пользователями, их доступом и т.п.
GitExtensions — это программа для windows, обертывающая функционал как git, так прилагающегося набора программ в GUI, который также, встраивается в среду разработки Visual Studio 05/08/10.
В корпоративе придется выделить ресурсы для хостинга SSH службы, дисковое пространство для размещения репозитариев.
Человека, который будет обслуживать SSH сервер, доступ к репозиторию.
Научить пользователей использовать аналоги функций для взаимодействия с их старыми система контроля версий через GitExtensions.
Предложить им некоторые схемы работы, которые позволяет достичь Git.
UPD: 05.08.2011
UPD: 30.01.2012
3. Идем к результату: Хостинг для комплектующих
Хостить Git,SSH сервер,Gitolite будем в Cygwin.
идем по адресу http://cygwin.com/setup.exe
Запускаем установщик.
Добавляем зеркало http://cygwin.vc.ukrtel.net/
matway.org — стал не доступен. Обновлено 30.01.2012.
Список зеркал близких России: cygwin.com/mirrors.html
Помечаем следующие компоненты:
Net | openssh
Devel | git
Devel | git-completion
Devel | git-gui
Devel | gitk
Editors | vim
Нажимаем Next и установка предложит добавить необходимые пакеты с чем, мы соглашаемся и нажимает Next.
Проверяем, Start Menu/Cygwin/Cygwin Terminal:
Логин Alexei мой логин в windows, base имя машины. Все сходится.
4. Идем к результату: Настройка SSH сервера
Запускаем Cygwin Terminal.
Запускаем конфигурацию SSH сервера командой ssh-host-config.
Заходим в /etc/sshd-config и подключаем авторизацию без пароля:
Раскомментируем эти строчки:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Для всех пользователей, кто будет работать с Git, нужно настроить вход на SSH сервер, через пользователя git (или другое имя) тв режиме без пароля.
Немного теории о работе SSH сервера.
При подключении из SSH клиента через строку подключения git@localhost, первое, что происходит-
поиск приватной части ключа в каталоге .ssh, если в CYGWIN — то
/.ssh/, если windows — то c:/users/вашеимя/.ssh
Дальше в файле authorized_keys в профиле git на сервере localhost ищется текст, у которого есть маркер, равный вашему текущему имени пользователя. Если он находится, то вы получаете терминал, в который загружен профиль пользователя git.
Клиенты есть в cygwin, есть в gitbash, есть такие, как putty. Нас интересует ssh клиент, который в cygwin.
Вызывается он командой ssh с аргументами git@localhost, где git- имя пользователя, в профиль которого мы хотим зайти через ssh и localhost (это адрес сервера SSH).
Собственно, сейчас мы и сделаем так, чтобы работало как сказано выше.
- Вводим еще одного юзера под именем git. Это имя будет для служебных операций.
Открываем Computer managment ->Local User and Groups ->Users-> пкм -> New User ->
имя Git, пароль 123456, оставляем галочку «Password never expires»->OK
Открываем Cygwin Bash Shell, вводим команду mkpasswd -l -u git >> /etc/passwd
Оживляем профиль пользователя командой:
Выходим из профиля нажав Ctrl+D или командой exit. - Генерируем для своего логина ключ. В моем случае для логина Alexei.
Команда ssh-keygen -t rsa создаст ключ в папке, который будет состоять из двух файлов
id_rsa (приватная часть, хранится у вас ) и id_rsa.pub (публичная часть ключа).
дальше вносим публичную часть ключа в файл authorized_keys в профиль пользователя git
через команду ssh-copy-id -i git@localhost.
Запускаем SSH сервер командной:
Копируем публичную часть ключа в профиль git:
Проверяем получилось ли настроить как нам нужно. Запускаем команду ssh git@localhost и ожидаем приглашения терминала
от пользователя git.
Все получилось настроить.
Если не получилось, переходим к пункту 10
5. Идем к результату: Настройка Gitolite
- Теперь нужно установить gitolite, так же он установит и настроит репозитарии для хранения файлов. Переходим в /tmp и скачиваем средствами git программу gitolite:
Дальше заходим в /gitolite/src/ и запускаем ./gl-easy-install со следующими ключами
git localhost Alexei. git — это логин куда будет установлен gitolite, localhost адрес SSH сервера, Alexei имя пользователя одновременно и имя приватной и публичной части ключа.
Когда спросит ввести пароль, то нажимаем просто Enter, так как пароль нигде не нужен. - Далее проходим до следующего экрана установки
Это окно показывает открытый файл .gitolite.rc в редакторе vim.
Нужно пройти курсором до места вставки текста, нажать I, ввести текст
$ENV=»/usr/local/bin:/usr/bin:/bin»;
Текст нужно вводить без ошибок, иначе запутаетесь в этом редакторе.
Для простоты, можно скопировать текст, потом переместить курсор в нужное место, нажать I, потом нажать на
иконке черного окошка(терминала, командной строки и т.п.) выбрать edit->paste и строчка вставиться.
Нажимаем после ввода ESC, нажимаем shift+:, набираем wq, нажимаем Enter.
Эта строка позволит gitolite вызывать программы из cygwin окружения, у которых схожие имена с программами windows. Например команда find есть и там и там. И если не указать, gitolite будет работать с ошибками и даже программа установки, будет работать с ошибками, так как будет использоваться find из windows.
Нажимаем еще несколько раз Enter и получаем следующую картинку:






















