Вопрос или проблема
Я установил openssh для Windows, и когда я запускаю ssh localhost
, я получаю
Плохой владелец или права на C:\Users\gary/.ssh/config
Я посмотрел на эти 2 вопроса “Ошибка плохого владельца или прав” при использовании ssh.exe от Cygwin и https://serverfault.com/questions/253313/ssh-returns-bad-owner-or-permissions-on-ssh-config, но ни один из ответов мне не подошел. sshd работает как служба от имени пользователя Local System. Я выполнил chmod 0600 C:\Users\gary\.ssh\config
и chown gary C:\Users\gary\.ssh\config
. Я также очистил ACL, выполнив setfacl -b C:\Users\gary\.ssh\config
, а затем снова выполнив chmod 0600 C:\Users\gary\.ssh\config
. Я также пробовал изменить владельца на SYSTEM и получил ту же ошибку.
Я не знаю, что еще делать, есть ли что-то не так с моей настройкой? У меня также установлен git, который установил mingw, я удалил ssh и sshd из своей установки git, чтобы они не были в моем пути.
Другие команды, которые я выполнил:
icacls "C:\Users\gary\.ssh\config" /setowner gary
chown -R gary:1049089 C:\Users\gary\.ssh
ls -la C:\Users\gary\.ssh\config
показывает
-rw-r–r– 1 gary 1049089 229 3 янв. 14:43 ‘C:\Users\gary.ssh\config’
это продолжает показываться даже после изменения владельца на SYSTEM, но в свойствах файла в проводнике файлов он показывает SYSTEM как владельца
Я установил владельца и права на C:\Users\
(и на все дочерние объекты, включая config
) на <me>
(и убрал все предыдущие права, в моем случае это были SYSTEM
, Administrators
и еще что-то), и это сработало!
Так что это должно быть только <ваше-имя-пользователя>
.
Но затем я столкнулся с другой ошибкой, заключающейся в том, что он не распознавал ни один из моих существующих ключей, которые были созданы с RSA. В настоящее время он понимает только Ed25519, что вы можете протестировать, выполнив ssh-keygen -t rsa
, и он выдаст ошибку с сообщением “неизвестный тип ключа rsa”. Есть открытая проблема на github.
Ответ или решение
Проблемы с владельцем и правами доступа в OpenSSH для Windows
Введение
Проблемы с неправильными правами доступа или владельцем файлов при работе с OpenSSH на Windows могут серьезно повлиять на вашу продуктивность. В данном ответе я постараюсь подробно рассмотреть вашу ситуацию и предложить конкретные шаги для решения проблемы с сообщением "Bad owner or permissions on C:\Users\gary/.ssh/config".
1. Понимание проблемы
Ошибка "Bad owner or permissions" указывает на то, что OpenSSH не может корректно прочитать файл конфигурации из-за недостаточных прав доступа. В вашей ситуации, даже после выполнения множества команд для изменения владельца и прав доступа, проблема сохраняется. Это может быть связано с тем, как Windows управляет правами доступа или с конфликтами между различными установками SSH.
2. Проверка прав доступа
Сообщение об ошибке указывает на файл C:\Users\gary\.ssh\config
. Первым делом убедитесь, что:
- Владельцем файла является ваш пользователь (
gary
). - Файл имеет права доступа 600 ( т.е.,
rw-------
), что означает, что только владелец может читать и записывать файл.
Для проверки прав доступа используйте следующую команду в командной строке:
icacls "C:\Users\gary\.ssh\config"
Убедитесь, что у вывода команды следующие строки:
gary:(R,W)
- Не должно быть доступа для групп
SYSTEM
иAdministrators
.
Если вы видите лишние права, удалите их, используя:
icacls "C:\Users\gary\.ssh\config" /remove:g SYSTEM
icacls "C:\Users\gary\.ssh\config" /remove:g Administrators
Далее, установите права:
icacls "C:\Users\gary\.ssh\config" /grant:g "gary:(R,W)"
3. Установка владельца файла
Убедитесь, что владелец файла установлен правильно. Для этого выполните:
icacls "C:\Users\gary\.ssh\config" /setowner gary
Также можно проверить, связаны ли проблемы с наследованием прав. Убедитесь, что у родительской директории (.ssh
) отключено наследование для ваших файлов. Это можно сделать в свойствах директории через проводник.
4. Команды Chown и Chmod
Вы упомянули использование chown
и chmod
. Эти команды обычно используются в средах на основе Linux и могут работать некорректно в Windows. Следовательно, лучше доверять встроенным командам Windows, как icacls
.
Обратите внимание, что команды:
chmod 0600 C:\Users\gary\.ssh\config
Могут не сработать так, как вы ожидаете, поскольку Windows обрабатывает права доступа по-другому.
5. Конфликты с Git Bash и другими установками SSH
Поскольку у вас установлен Git, который может устанавливать свои версии SSH, вам следует убедиться, что вы используете версию OpenSSH, которую вы установили для Windows. Проверьте переменную PATH, чтобы исключить наличие других установок SSH:
where ssh
Убедитесь, что вывод указывает на C:\Windows\System32\OpenSSH\ssh.exe
(или другую директорию, куда был установлен OpenSSH для Windows), а не на версию Git.
6. Вопросы совместимости ключей
Вы также упомянули наличие проблемы с инвалидацией ключей RSA после перехода на Ed25519. Убедитесь, что у вас установлена последняя версия OpenSSH для Windows, так как более ранние версии не поддерживают RSA. Вы можете создать новый ключ без ошибок с помощью:
ssh-keygen -t ed25519
Для использования уже существующих ключей RSA убедитесь, что ваша версия OpenSSH поддерживает этот тип ключей. Возможно, потребуется обновление.
Заключение
В попытке устранить проблему с правами доступа в OpenSSH для Windows, настоятельно рекомендуется выполнять все указанные шаги, ориентируясь на специфические команды Windows, и соблюдать порядок действий. Это поможет избежать конфликтов и обеспечит успешное подключение через SSH. Если же проблемы сохраняются, стоит проверить наличие обновлений для OpenSSH и рассмотреть возможность полного удаления и повторной установки решения.