Моя установка Git отлично работает в Linux, но когда я пытаюсь настроить ее под Windows (используя Git для Windows и TortoiseGit ), я не знаю, куда поместить свой закрытый ключ SSH (или, что еще лучше, как определить, ssh
где он находится расположены). Я использую стандартную опцию ssh.exe во время установки Git для Windows. Настройка работает нормально, если я разрешаю аутентификацию по паролю (вместо RSA) на сервере.
487
Ответы:
Для Git Bash
Если вы используете msysgit (я полагаю, вы это делаете) и хотите запустить Git Bash (я рекомендую использовать TortoiseGit, но сейчас я больше склоняюсь к CLI, чем к GUI), вам нужно выяснить, какой домашний каталог для Git. Bash, запустив его, а затем введите
pwd
(На Windows 7, это будет что-то вроде,C:\Users\phsr
я думаю). Пока вы в Git Bash, вам следуетmkdir .ssh
.После того, как у вас есть домашний каталог и
.ssh
папка под ним, вы хотите открыть PuTTYgen и открыть ключ (файл .ppk), который вы ранее создали. Когда ваш ключ открыт, вы хотите выбрать егоConversions -> Export OpenSSH key
и сохранить вHOME\.ssh\id_rsa
. После того, как у вас есть ключ в этом месте, Git Bash распознает ключ и использует его.Примечание. Комментарии указывают, что это работает не во всех случаях. Возможно, вам придется скопировать ключ OpenSSH в
Program Files\Git\.ssh\id_rsa
(илиProgram Files (x86)\Git\.ssh\id_rsa
).Для TortoiseGit
При использовании TortoiseGit вам необходимо установить SSH-ключ в соответствии с указаниями темпа . Это необходимо сделать для каждого репозитория, с которым вы используете TortoiseGit.
источник
~/.ssh/id_rsa
файл вProgram Files\Git\.ssh\id_rsa
- что немного сбивало с толку, но теперь IntelliJ и Windows cmd могут использовать git-репозитории, использующие аутентификацию по ключам.id_rsa
иid_rsa.pub
вc:\program files (x86)\Git\.ssh
. Режиссёр.ssh
уже присутствовал. Спасибо, JP.id_rsa
без расширения. Это имя файла, это не каталогИспользуя встроенный SSH-клиент, поставляемый с Git для Windows, вам нужно настроить переменную среды HOME, чтобы клиент Git SSH мог найти ключ.
Например, при установке Windows Vista это можно сделать, введя
setx HOME c:\Users\admin\
в командной строке.Это сделало мой день и исправило проблему с Git при условии, что ваш закрытый ключ не защищен паролем. Если вы хотите использовать ssh-agent, вы можете запустить ssh-agent cmd.exe (хотя я никогда не делал этого) и ssh-add как обычно.
Обратите внимание, что все инструменты Git / SSH должны запускаться из cmd.exe, чтобы окно не мигало .
Если это не работает правильно, использование plink может быть достигнуто путем настройки GIT_SSH . Обратитесь ко всем учебникам SVN + ssh; это в основном та же сантехника, которую нужно настроить.
источник
setx HOME c:\Users\admin` command doesn't seems to be working in Git Bash. You have to use
Cmd` вместо этого.GIT_SSH=c:\pathto\plink.exe
Вы можете указать расположение ключа для TortoiseGit следующим образом:
Скриншот ниже:
источник
Ни один из предыдущих ответов не сработал для меня. Вот что сработало для меня в конце. Это на самом деле довольно просто, если вы знаете, что печатать. Это не нуждается в замазке.
Это бит на вашем собственном компьютере. Теперь
ssh
на сервер назначения, затем выполнитеЭто оно! Вы сделали! Из Git Bash сделайте следующее, чтобы проверить:
Если он перечисляет файлы в вашем домашнем каталоге на сервере Git, и тогда все готово!
Для GitHub у вас нет доступа оболочки к их серверу, но вы можете загрузить ключ, используя их веб-сайт, поэтому для бита «теперь скопируйте на ваш сервер» выполните:
источник
Если вы используете msysgit с инструментами OpenSSH, вам нужно либо создать
~/.ssh/id_rsa
, либо создать конфигурацию Git, в~/.ssh/config
которой указывается ваш ключ.Вот пример конфигурации Git для Bitbucket, которая будет использовать правильное имя пользователя и ключ, отличный от ключа по умолчанию (в случае, если вы сохраняете один ключ для соединений SSH, а другой для учетных записей Git).
~ / .ssh / config :
Попав в Git Bash, вы можете запустить две команды, чтобы добавить свой ключ в ssh-agent вашего текущего сеанса, чтобы избежать необходимости многократного ввода пароля ключа.
источник
Я просто установил% HOME% =% HOMEPATH%
Это имеет преимущество работы для всех пользователей, вошедших в систему (каждый из них получает отдельные папки .ssh).
В Vista:
источник
%HOMEPATH%
не содержит букву диска, так что если ваш источник не на чтоC:
вы должны предварятьC:
к%HOME%
.set %HOME%=%HOMEPATH%
работал на меня! Спасибо!!Ваш закрытый ключ необходимо добавить к агенту SSH на вашей рабочей станции. То, как вы этого достигнете, может зависеть от того, какой git-клиент вы используете, однако puTTY и связанный с ним агент (pageant) могут помочь вам, вот ссылка на официальные двоичные файлы и источник:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
источник
C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
), указывающий на него"C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk"
, чтобы он загружал мои SSH-ключи при запуске, и это заставляет GIT «просто работать»: o)В моем случае я использовал Git для Windows в контейнере Docker
windowsservercore
.Мой Git был установлен Chocolatey для
C:\Program Files\Git
.Мне пришлось обновить файл
C:\Program Files\Git\etc\ssh\ssh_config
с этим:Тогда я мог бы использовать ключ от
C:\Users\<user>\.ssh\id_rsa
Если вы используете Git для Windows вместе с OpenSSH для Windows. Git все еще использует свой собственный
ssh
.Кроме того, если вы планируете использовать
ssh-keyscan host.com > known_hosts
от OpenSSH, будьте осторожны , потому что выход трубопровода изstdout
изkeyscan
(на Windows) изменяет кодировку UCS-2, но OpenSSH может читать только UTF-8! Поэтому не забудьте изменитьknown_hosts
кодировку файла.источник
ОК, я посмотрел на предложение
.
.Но помещать свои личные SSH-ключи в общую папку я не считал хорошей идеей, поэтому я начал искать, где находится известный хост.
Поэтому, если вы хотите правильно защитить свой SSH-ключ, вам нужно поместить его в следующий каталог:
Для Windows 7, 8 и 8.1 32-разрядная версия:
Для Windows 7, 8 и 8.1 64-разрядная версия:
источник
known_hosts
. Конечно же, это было вC:\Users\Dave\AppData\Local\VirtualStore\Program Files (x86)\Git\.ssh
. Поместив мой файл ключей (id_rsa) в этот каталог, ssh смог найти его без жалоб. Я немного почитал - вот как Windows обрабатывает (устаревшее) программное обеспечение, пытающееся записывать в запрещенные области (такие как «C: \ Program Files \»), поэтому ssh из Git совершенно не знает, что пишет в каталог VirtualStore, Windows обрабатывает это прозрачно. По крайней мере, эти файлы принадлежат пользователю!Наиболее эффективный способ - использование Pageant, поскольку он позволит вам написать фразу-пароль только один раз в начале сеанса вместо каждого нажатия. Все ответы здесь были слишком короткими, поэтому я выложу подробное руководство здесь:
pageant.exe
,puttygen.exe
,putty.exe
иplink.exe
с веб - сайта PuTTY в. Поместите их вC:\puttyTools
каталог.puttygen.exe
.%USERPROFILE%\_ssh
(на моем компьютере это соответствуетC:\Users\andres\.ssh\
). Неважно, что вы называете ключом, но для демонстрации я его назовуgithub.ppk
. Этот файл должен иметь расширение .ppk.Public key for pasting into OpenSSH authorized_keys file
и вставьте его в новый ключ SSH в настройках GitHub. Дайте ему название, которое описывает, на каком компьютере находится ключ (например, «Рабочий ноутбук»).pageant.exe
, появится новая иконка систрея.Environ
через WindowsMenu, который найдетEdit environment variables for your account
):GIT_SSH = "C:\puttyTools\plink.exe"
иSVN_SSH = "C:\puttyTools\PuTTY\plink.exe"
MINGW64
консоли Git и проверьте наличие переменных среды, написав командуenv | grep -i ssh
.(Изначально извлечено из этих двух руководств, которые я объединил в одном: как настроить Git для Windows и настроить MinGW-W64 + MSYS для использования PuTTY Plink / Pageant .)
источник
При смешивании GitHub для Windows и Git GUI для Windows вы можете столкнуться с проблемами, когда Git GUI постоянно запрашивает у вас имя пользователя и пароль. Лекарство от этого состоит в том, чтобы изменить удаленный URL-адрес
https:
(который создает GitHub для Windows) на протокол Git. В.git
каталоге в файле конфигурации найдите:Измените это на:
источник
git@{SERVER URL}
?Стандартное расположение файлов находится в
%USERPROFILE%\.ssh
.%USERPROFILE%
является эквивалентом $ HOME в Unix (обычно отображается на что-то вродеc:\users\youruserid
).Если вы используете инструменты SSH, поставляемые с Git, которые являются стандартными инструментами командной строки в стиле Unix, вы можете использовать что-то вроде моего сценария для работы с ssh-agent во всех оболочках.
источник
%USERPROFILE% is the equivalent of $HOME
это не эквивалент$HOME
. Многие плохо работающие Linux-приложения, портированные на Windows, относятся к ним одинаково, но к ним не следует относиться одинаково.%USERPROFILE%
в Windows так же, как и$HOME
в Linux, нарушают хорошо документированные рекомендации / рекомендации по разработке Windows (опубликованные MS давно и обновленные со временем). Есть много инструментов, которые делают это, но аргумент, который следует за ними, очень похож на аргумент «X писает в пуле, поэтому мы тоже должны».USERPROFILE
где пользователь хранит документы, которые он создает / сохраняет (например, диалог сохранения).APPDATA
для пользовательских данных конфигурации.LOCALAPPDATA
для кэшей для каждого пользователя и больших файлов.PROGRAMDATA
для конфигурации машины и кеша.У меня были подобные проблемы, и ни один из ответов здесь не решил проблему. Оказывается, моя пара ключей изначально была сгенерирована с пустой парольной фразой. (Я знаю, тупой.)
Как только я создал новую пару ключей и загрузил открытый ключ в GitHub, все снова заработало.
источник
Следующий ответ также относится к этому вопросу при запуске ssh из учетной записи службы Windows: Jenkins (служба Windows) с Git через SSH
источник
Вы можете указать как путь к ключу, так и имя файла ключа, например, в Ubuntu. Например:
источник
GIT_SSH_COMMAND
на моей машине с Windows.Pageant (SSH-агент, входящий в комплект PuTTY ) решает проблему для меня.
У меня есть ярлык в папке «Пуск» моего меню «Пуск»,
C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
указывающий на него"C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk"
, чтобы он загружал мои ключи SSH при запуске, и это заставляет Git «просто работать»: o)источник
Многие ответы говорят об этом, но для меня недостаточно быстро!
в Windows, используя msys (стандартная консоль Windows)
C:\Users\{you}\.ssh\id_rsa
По сути, это не мешает сканировать установленные ключи (по крайней мере, не на моем новом ноутбуке) и поэтому требует специально
id_rsa
Я столкнулся с этим желанием клонировать некоторые частные репозитории в ruby MSYS CLI для Windows 10 64-bit
источник
Если вы работаете в Windows 7/8, вы должны заглянуть в C: \ Users \ Your_User_Name.ssh. Просто скопируйте сюда файл id_rsa и вставьте его, и все будет работать "из коробки".
источник
Одна ошибка, которую я допустил при использовании SSH в Windows, заключалась в том, что когда я пытался использовать ключи через клиент Git Bash, все файлы в ~ / .ssh имели неправильные разрешения, но он не пытался сказать мне, что это было проблема.
В качестве теста убедитесь, что вы установили все в вашем каталоге ~ / .ssh на chmod 600.
источник
Если у вас есть необходимые разрешения на компьютере с Windows, и ваша политика разрешает это, я бы предложил установить Cygwin ( https://cygwin.com/ ), особенно если учесть, что у вас есть опыт работы с Linux. Cygwin позволит обрабатывать ваши ssh-ключи так же, как на любой другой машине с Linux / Unix. И он предоставляет доступ практически ко всем инструментам Cli Linux.
источник
TortoiseGit позволяет вам указать ключ, который будет использоваться при клонировании репозитория. Просто отметьте «Load Putty Key» и перейдите к
.ppk
файлу, как на скриншоте:источник
Settings... -> Network -> SSH client
установлена наC:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe
Я исправил вышеуказанную проблему, создав
файл и положить:
источник
Читая ваш комментарий к ответу Деклана, попробуйте сначала открыть командную строку (Пуск → Выполнить → cmd ), а затем перейдите в эту папку git / bin и запустите
ssh-keygen
. Теоретически это сгенерирует ключ RSA и поместит его в соответствующий каталог. Тогда вам просто нужно найти его и поделиться своим открытым ключом с миром.Причина, по которой окно «мигает», заключается в том, что Windows запускает программу, и когда она выполняется, она закрывает командную строку, думая, что вы закончили с ней, когда вам действительно нужен вывод.
источник
Используя v0.17 Git Gui в Windows, я щелкнул следующую команду меню: Справка → Показать ключ SSH .
Появился диалог под названием Ваш открытый ключ OpenSSH . Я сгенерировал ключ и скопировал его в буфер обмена. Затем я продолжил следовать инструкциям setup-ssh для githelp, начиная с третьего шага . После этого Git Gui молча общался с GitHub - не нужно вводить учетные данные.
источник
В моей системе Windows 7 Git Gui ищет ключ RSA в
userprofile/.ssh
папке или, более конкретноc:/users/yourusername/.ssh/
.Сложнее всего было настроить общий хост на hostmonster для принятия ключа. Единственный способ заставить его работать - использовать Git Gui для создания пар ключей (без пароля), а затем копировать и вставлять открытый ключ через панель управления ssh, управление ключами.
Для начала вам нужно создать ключи в Git Gui, перейдя в меню « Справка» , « Показать ключ SSH» , затем « Создать ключ» . Теперь у вас будет два новых ключа в
.ssh
каталоге. Откройте.pub
файл и скопируйте содержимое.Войдите в свою панель управления на общем хосте и перейдите в раздел SSH , Управление ключами SSH и Ключ импорта . Вставьте в поле Public и убедитесь, что вы назвали его правильным именем без расширения - мое было
id_rsa
. Теперь вы должны авторизовать ключ, используя ссылку управления авторизацией, чтобы он был объединен вauthorized_keys
файл.Теперь ваш Git Gui и ваш Git Bash должны иметь возможность использовать SSH без необходимости вводить пароль. Как ни странно, я смог успешно использовать SSH через Git Bash и Git Gui на своих собственных серверах под управлением Linux, это был только общий хостинг, который меня устраивал. Я надеюсь, что это кому-то поможет, потому что мне понадобились часы проб и ошибок, чтобы придумать это - и это так просто!
источник
Если вы используете командную строку Git для Windows, вы можете сделать следующее:
Откройте
cmd.exe
и выполнитеsetx HOME c:\PATH_TO_PRIVATE_KEY
.Создайте новую папку,
.ssh
(если она не существует) внутриc:\PATH_TO_PRIVATE_KEY
и скопируйтеid_rsa
в нее свой файл (свой закрытый ключ).Готово. Теперь вы можете использовать командную строку Git как обычно.
источник
Мой опыт работы с msysgit в OpenSSL / Bash Git (а не в PuTTY)
.ssh/
таков, что порядок поиска вашей папки следующий.%HOME%/.ssh/
%HOMEDRIVE%%HOMEPATH%/.ssh/
%USERPROFILE%/.ssh/
Вот почему так много людей предлагают установить,
HOME
если один из других не то, что вы ожидаете. Что еще более важно, вы можете проверить сами; отладить использованиеssh -v
на сервере, который использует аутентификацию с открытым ключом, следующим образом:Мы нашли
ssh
поиск на скрытом диске, и ни один из предыдущих ответов, казалось, не объяснял то, что мы видели.Иногда
%HOMEDRIVE%%HOMEPATH%
это подключенный сетевой диск (напримерH:/
), который вызывает ненужные сбои, когда возникают проблемы с сетевым / файловым сервером, даже когда ключи%USERPROFILE%/.ssh
естьC:/Users/Username/.ssh
и есть локально. Установка%HOME%
для%USERPROFILE%
остановки он смотрит на домашнем диске удаленного.источник
Вы также можете загрузить PuTTY Agent (pageant) и добавить закрытый ключ, который вы сгенерировали с помощью PuTTY для сервера.
Git распознает это и использует это для push / pull.
источник
Я использовал TortoiseGit, а также Git Bash для Windows, в зависимости от необходимости. Я добавил все в TortoiseGit, и он работал нормально, но Git Bash не собирал его, хотя ключи были в правильном каталоге. Оказывается, я должен был сделать это из Git Bash:
Конечно, вы можете изменить путь к тому месту, где находится ваш ключ, не забывая использовать его
\\
в качестве разделителя.источник
Если вы используете Git для Windows, после генерации ключей SSH вы должны добавить свой ключ SSH в ssh-agent.
См. Генерация нового ключа SSH и добавление его в ssh-agent .
источник