6

Я пытаюсь настроить Git с OpenSSH под Cygwin. Я почти все настроил. У меня есть агент, открытый ключ и все такое ... но теперь я получаю действительно странную ошибку:

$ git pull -u origin master
Bad owner or permissions on /home/Jordan/.ssh/config
fatal: The remote end hung up unexpectedly

Поиск в Google кажется ошибкой прав доступа (конечно). Одна проблема: разрешения выглядят нормально для меня.

Я также попытался сделать chmod 0600 ~/.ssh/config , но это не помогло. Что я пытался сделать:

Jordan@EarlzWindows8VM ~/dev/NonExceptional
$ chmod 0600 ~/.ssh/config 

Jordan@EarlzWindows8VM ~/dev/NonExceptional
$ stat ~/.ssh/config 
  File: `/home/Jordan/.ssh/config'
  Size: 47              Blocks: 1          IO Block: 65536  regular file
Device: 4ade2efdh/1256075005d   Inode: 1970324837237461  Links: 1
Access: (0660/-rw-rw----)  Uid: ( 1001/  Jordan)   Gid: (  513/    None)
Access: 2013-01-12 22:53:32.483072600 -0500
Modify: 2013-01-12 22:53:32.486074700 -0500
Change: 2013-01-12 23:27:33.077476800 -0500
 Birth: 2013-01-12 22:53:32.483072600 -0500

Обратите внимание, что по какой-либо причине разрешения по-прежнему выглядят как 0660 . Хотя я не понимаю почему. Я проверил эти разрешения в Windows Explorer. Только у меня есть доступ к файлу, и при проверке "эффективного доступа" группа "Пользователи" не имеет доступа к файлу.

Как я могу исправить эту ошибку?

Также немного предыстории: Windows 8 Enterprise. Присоединен к домену (который всегда делает права доступа интересными). Cygwin обновлен

8 ответов8

15

Не забывайте ACL

У меня ничего не получалось, пока я не удалил файл ACL и не сбросил разрешения.

#remove ACLs
setfacl -b ~/.ssh/config

#reset permissions
chmod 0600 ~/.ssh/config

Вы можете использовать getfacl для просмотра текущего ACL в файле.

getfacl ~/.ssh/config

Прежде чем я удалил ACL (сломанный):

# owner: Administrators
# group: None
user::rw-
group::---
group:Authenticated Users:rwx
group:SYSTEM:rwx
mask:rwx
other:---

После: (работает)

# file: config
# owner: myusername
# group: None
user::rw-
group::---
other:---
7

Iv'e обнаружил, что это всегда исправляет это:

chown Username:Users ~/.ssh/config
chmod go-rw ~/.ssh/config
4

Проблема закончилась тем, что файл принадлежал группе "Нет". Я изменил группу на "Пользователи", а затем я мог свободно изменять разрешения

Я понял это из этого смежного вопроса

2

Это решение помогло мне:

cd ~/.ssh
chmod 600 *
1

Мой cygwin64 на win7, работающий от имени администратора, chmod/chown/setacl/icacls/copyacls/ не помог; только это сработало: ssh -F ~/.ssh/config ...

0

Эти команды должны работать:

chown $USER ~/.ssh/config
chmod 644 ~/.ssh/config

Префикс sudo если файлы принадлежат другому пользователю.

Если затронуто больше файлов, замените config на * .

В man ssh мы можем прочитать:

Из-за возможного злоупотребления этот файл должен иметь строгие разрешения: чтение / запись для пользователя и недоступность для записи другими. Это может быть доступно для записи в группе при условии, что рассматриваемая группа содержит только пользователя.

0

Этот работал для окон на вкладке «Владелец» свойств файла Windows. Добавьте требуемого пользователя USER в качестве владельца cd в папку, где находится конфигурационный файл, а затем ssh на хост.

-2

Ваш файл конфигурации доступен для записи для группы, и SSH это не нравится. Сделать

chmod go-rw ~/.ssh/config

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .