Использование git через cygwin на окнах 8

У меня есть предварительный просмотр windows 8 dev (не уверен, что это актуально, но у меня никогда не было этой проблемы с w7), и я пытаюсь клонировать git repo из github.

Проблема в том, что у моего ~ / .ssh / id_rsa есть 440 разрешений, и это должно быть 400. Я пробовал chmodding, но любые изменения в разрешениях пользователей отражаются в групповых разрешениях (например, chmod 600 приводит к 660 и т. Д. ). Это кажется постоянным во всех файлах всей файловой системы.

Я пробовал возиться с ACL, но безрезультатно (полный контроль над моим пользователем и отрицание того, что все привели к 000)

Вот несколько выводов, которые помогут:

$ git clone [removed] Cloning into [removed]... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0660 for '/home/john/.ssh/id_rsa' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: /home/john/.ssh/id_rsa Permission denied (publickey). fatal: The remote end hung up unexpectedly $ ll ~/.ssh total 6 -r--r----- 1 john None 1675 Nov 30 19:15 id_rsa -rw-rw---- 1 john None 411 Nov 30 19:15 id_rsa.pub -rw-rw-r-- 1 john None 407 Nov 30 18:43 known_hosts $ chmod -v 400 ~/.ssh/id_rsa mode of `/home/john/.ssh/id_rsa' changed from 0440 (r--r-----) to 0400 (r--------) $ ll ~/.ssh total 6 -r--r----- 1 john None 1675 Nov 30 19:15 id_rsa -rw-rw---- 1 john None 411 Nov 30 19:15 id_rsa.pub -rw-rw-r-- 1 john None 407 Nov 30 18:43 known_hosts $ set | grep CYGWIN CYGWIN='sbmntsec ntsec server ntea' 

Я понимаю, что могу использовать msysgit или что-то в этом роде, но я предпочел бы иметь возможность делать все с одного терминала

Изменить: Msysgit не работает ни по тем же причинам

Нет необходимости в пустой группе.

Во время установки cygwin все файлы не принадлежат ни одной группе. Вы можете проверить это, выполнив ls -al . Вы увидите, что в файлах нет группы («нет»). Просто измените его на пользователей:

 chgrp Users * 

После этого вы можете chmod что угодно.

На данный момент я нашел специфический для Cygwin хак, чтобы обойти это.

Укороченная версия:
Просто создайте новую группу оконных окон, используйте chgrp, чтобы изменить группу id_rsa на это, а затем запретить права на чтение и запись для группы.

Длинная версия:
Нажмите клавишу super и введите lusrmgr.msc . Используйте этот менеджер для создания пустой группы, называемой EMPTY_GROUP

Теперь нам нужно рассказать Cygwin об этой новой группе.

 mkgroup > /etc/group 

Затем мы обновляем группу id_rsa :

 chgrp EMPTY_GROUP ~/.ssh/id_rsa 

Наконец, найдите find id_rsa в Проводнике Windows и на вкладке «Безопасность» в «Свойствах» запретите права на чтение и запись, и вам должно быть хорошо идти.

Я не уверен, как Cygwin смог справиться с этим в 7, но не с 8, но проблема, похоже, связана с тем, что группа id_rsa является None, группа, которая всегда имеет полный доступ для чтения / записи.

Кроме того, похоже, это работает только для ssh.exe, который поставляется с Cygwin, поэтому, если вы хотите использовать ssh с git, перезапишите ssh.exe из bin в вашей git install с помощью одной из папки bin в вашей Cywgin install ,

Win 8 + Cygwin

Я нахожусь на Windows 8, 64bit. Выполнение следующего решения для меня:

 ## Start Cygwin shell cd .ssh chmod 600 key-file-name 

В cygwin введите следующие команды:

  • Установите правильную группу в домашнюю папку:

    chgrp -Rv HomeUsers /home

  • Задайте правильные разрешения для файлов идентификации ssh:

    chmod 600 -Rv ~/.ssh/id*

NB: предыдущий принятый ответ устарел. Название группы – «HomeUsers», а не «Пользователи», не может комментировать.

Я хотел бы также прокомментировать этот вопрос. Я столкнулся с аналогичной проблемой на своем ПК с Windows 7, используя git через Cygwin.

При попытке перенаправить изменения из моего локального репозитория git в удаленный репозиторий (используя ssh и keypair для аутентификации) git бросил сообщение о том, что разрешения 0660 были слишком открыты для файла

~ / .ssh / id_rsa.

Конечно, ssh-agent отвергает этот открытый закрытый ключ.

Поэтому я пробовал вещи, упомянутые в этом потоке и других потоках, которые были связаны с собственностью и rwx-образцом файла и папкой ~ / .ssh

 chgrp Users ~/.ssh/* chmod 400 ~/.ssh/id_rsa 

Однако эта ошибка повторялась снова и снова.

По какой-то причине было необходимо убить процесс ssh-agent в cygwin и выполнить следующую команду в командной строке bourne (bash).

 eval `ssh-agent -s` 

Не забудьте добавить желаемый идентификатор к ssh-агенту, например

 ssh-add ~/.ssh/id_rsa 

Затем я повторил действительную команду push, например

 git push origin master 

И все сработало хорошо.

Чтобы продлить ответ Рой Дантона . Если вы установили Windows 8 поверх старой установки Windows, а ваш предыдущий каталог cygwin все еще находится в тактике, сначала вам нужно сделать несколько других вещей.

Во-первых, взять на себя ответственность за каталоги / файлы Cygwin

Будут некоторые учетные записи пользователей, связанные с каталогом и подкаталогами / файлами, которые выглядят примерно так: S-1-2-34-1234567890-1234567890-1234567890-123

Учетные записи пользователей

Удалите их и получите право собственности на свою учетную запись пользователя.

  1. Доступ к Properties каталога cygwin
  2. Нажмите « Advanced на вкладке « Security »
  3. Change владельца на себя. Вы можете ввести свое имя или соответствующий адрес электронной почты
  4. Remove из списка неизвестных пользователей
  5. Нажмите « Enable Inheritance
  6. Установите флажок «Заменить все записи разрешений на дочерние объекты с помощью наследованных записей разрешения с этого объекта
  7. Нажмите « OK внизу, а затем « Yes в диалоговом окне.

Диалоговое окно «Безопасность Windows»

Затем, в Cygwin, измените группу пользователей всех файлов ключей

Из ответа Рой Дантона :

Во время установки cygwin все файлы не принадлежат ни одной группе. Вы можете проверить это, выполнив ls -al .

  1. Откройте Cygwin и перейдите в .sshcd ~/.ssh
  2. Запустите chgrp Users * – это позволит вам корректно chmod файлы.
  3. Наконец, запустите chmod 400 * . 600 также будет работать.

Тест, который нужно посмотреть, если он работает

Просто ssh на ваш сервер выбора. В моем случае это битбакет .

Хороший результат:

 $ ssh [email protected] PTY allocation request failed on channel 0 conq: logged in as simonhartcher. You can use git or hg to connect to Bitbucket. Shell access is disabled. Connection to bitbucket.org closed. 

Плохой результат:

 $ ssh [email protected] @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0755 for '/home/Simon/.ssh/id_dsa' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: /home/Simon/.ssh/id_dsa Permission denied (publickey). 
  1. Id_rsa -> Щелкните правой кнопкой мыши -> Свойства -> Безопасность -> Изменить
  2. Удалите все группы и пользователей (не нажимайте OK или Apply)
  3. Добавить -> Введите свое текущее имя пользователя -> Проверить имена
  4. Разрешить «Полный контроль»
  5. Подать заявление

(Windows 10 Pro)

  • Как скрыть раздел System Reserved?
  • Смогу ли мой компьютер запустить Windows 8 без UEFI?
  • Как вернуться к Windows 7 после установки Windows 8?
  • Как удалить Windows 8 Consumer Preview?
  • Заставить приложения Windows 8 Metro работать с более низким разрешением ниже 1024x768?
  • Ошибка 0xc0000260 при установке Windows 8 Consumer Preview на старом ноутбуке
  • Как добраться до командной строки в Windows 8
  • Темная тема для Windows 8
  • Экран запуска Windows 8 очень медленный после гостевых дополнений
  • Почему моя виртуальная машина Windows 8 не использует мою карту NVIDIA?
  • Почему моя беспроводная сетевая карта должна быть сброшена каждый раз, когда я запускаю или разбужу свою машину?
  • Interesting Posts

    Что такое хороший поверхностный материал для тестирования компьютера?

    Почему изменение разрешения ЖК-экрана (Windows 7) занимает несколько секунд?

    mysql select int как валюта или конвертировать int в формат валюты?

    Открытие «известного типа файла» в исполняемом экземпляре настраиваемого приложения – .NET

    Поддержание сеанса в android (приложение остается аутентифицированным на стороне сервера)

    Как проверить загруженный файл в ASP.NET MVC?

    Цветовые точки на графике по-разному в зависимости от вектора значений

    Можно ли разделить одну линию Ethernet, выходящую из моей стены, на несколько отдельных линий?

    Java Преобразует целое число в шестнадцатеричное целое

    Постоянно скрывать строку состояния Android

    Как улучшить производительность графики DataGridView?

    Я обновился до Windows 10, и теперь я заблокирован из своего компьютера

    В чем разница между процессом и streamом?

    Передача массива String между двумя classами в приложении android

    jqGrid необходимо изменить поле в диалоговом окне «Добавить», но не в диалоговом окне «Редактировать»

    Давайте будем гением компьютера.