Использование 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)

  • Сделать GRUB 2 загрузочным Windows 8 безопасным режимом
  • Как отключить начальный экран в Windows 8 Release Preview?
  • В Internet Explorer 10 Metro, как вы меняете домашнюю страницу?
  • Как скрыть раздел System Reserved?
  • Экран запуска Windows 8 очень медленный после гостевых дополнений
  • Измените начальное меню Windows 8 на Windows 7
  • Как настроить беспроводную сеть как приватную, а не публичную?
  • Невозможно увидеть DVD-привод в Windows 8 Developer Preview
  • Как установить среду java в Windows 8?
  • Отключить Aero в Windows 8?
  • Как решить ошибку «Код: 0x0000000A» при установке Windows 8 Developer Preview?
  • Interesting Posts

    Почему я не могу создать стиль DataGridTextColumn?

    WPF CommandParameter NULL первый раз, когда вызывается CanExecute

    Хорошее решение для преобразования текста в речь для Windows

    Бит взломать для генерации всех целых чисел с заданным числом 1s

    Трекпадный жест для переключения на заголовок / источник

    MSTest Эквивалент для параметризованных тестов NUnit?

    Сколько объектов String будет создано при использовании знака «плюс»?

    Тип Keystore: какой из них использовать?

    Почему я получаю ошибку для apple-touch-icon-precomposed.png

    Как вы гарантируете, что Cascade Delete включена в отношении отношения таблицы в EF Code?

    Как использовать сервер времени Интернета для получения времени?

    Обтекание с помощью раздела CData – Сериализация XML C #

    Как предотвратить закрытие командной строки после выполнения?

    Почему система прослушивает порт 8000?

    Ошибка ADODB.Parameters ‘800a0e7c’ Объект параметра неверно определен. Предоставлена ​​несогласованная или неполная информация

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