Openssh windows плохой владелец или разрешения

Я установил openssh для Windows, и когда я запускаю ssh localhost, я получаю

Bad owner or permissions on C:\Users\gary/.ssh/config

Я посмотрел на эти 2 вопроса https://superuser.com/questions/348694/bad-owner-or-permissions-error-using-cygwins-ssh-exe и https://serverfault.com/questions/253313/ssh-returns-bad-owner-or-permissions-on-ssh-config, но ни один из ответов у меня не работает. sshd работает как служба от имени пользователя локальной системы. Я использовал 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 garychown -R gary:1049089 C:\Users\gary\.ssh

ls -la C:\Users\gary\.ssh\config показывает

-rw-r--r-- 1 gary 1049089 229 Jan 3 14:43 'C:\Users\gary.ssh\config'

он продолжает показывать это даже после смены владельца на SYSTEM, но в свойствах файла в проводнике файлов он показывает SYSTEM как владельца

У меня такая же проблема сегодня впервые после обновления Windows. Я также использую cmder, и "vagrant ssh" вызывает у меня ту же ошибку. Я узнал (из переменной среды PATH), что клиент ssh, который использовал бродяга, был клиентом из C:\WINDOWS\System32\OpenSSH. Поэтому мне просто нужно было сначала добавить путь к моему собственному клиенту ssh - проблема решена. Надеюсь это поможет.

van 03.05.2018 14:32

этот блог может быть полезным

douyu 21.02.2020 11:17

Сегодня та же проблема. Я пробовал много разных вещей и, наконец, у меня получилось. 1. отключил наследование для папки .ssh и удалил все разрешения, 2. добавили администраторов с разрешениями обратно 3. переименовали имя моего компьютера, чтобы оно отличалось от имени пользователя. все еще использую windows openssh, а не git.

JCQian 16.10.2020 19:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
43
3
39 652
18

Ответы 18

У меня сработало изменение клиента ssh с C: \ Windows \ System32 \ OpenSSH \ ssh.exe на C: \ Program Files \ Git \ usr \ bin \ ssh.exe.

Было бы лучше, если бы вы также сказали шаги.

Siraj Alam 17.06.2019 21:10

Спасибо за подсказку. Я решил проблему, добавив C: \ Program Files \ Git \ usr \ bin в системную переменную Path и убедившись, что она выше (раньше) % SYSTEMROOT% \ System32 \ OpenSSH. К сожалению, я не могу использовать Git ssh со службой Windows ssh-агент. Тогда я расшифрую все свои закрытые ключи.

weeix 23.07.2019 04:54

Я решил это, используя GitBash вместо Cygwin.

Harry 30.03.2021 23:29

У меня такая же проблема после переустановки Windows. И легко исправить, просто изменив права доступа к файлу на

.ssh-config file permissions

SYSTEM & Administrators - Full Control
[your username] - Modify & as Owner

Примечание:

Вышеупомянутое сработало для меня, но не сработало, если я заменил имя пользователя на OWNER в строке разрешений, где Fery дал ему права на изменение. Полный контроль работает над разрешениями.

arberg 17.06.2018 20:10

Это сработало для меня (OpenSSH-Win32 в Windows 10) после удаления наследования и всех других разрешений и добавления только себя с полным доступом.

neilsimp1 03.07.2018 17:55

Предоставление пользователю полного контроля над файлом и / или удаление наследования не помогает. Думаю, я просто поменяю SSH-клиент, раз уж у меня установлен Git Bash :)

vintproykt 08.10.2019 10:58

Просто прокомментирую этот ответ для SEO немного подробнее, так как его было трудно найти. Мы использовали Composer для Windows 10 версии 1.9.3. Этот ответ решил проблему «НЕЗАЩИЩЕННЫЙ ЧАСТНЫЙ КЛЮЧ-ФАЙЛ» и «Плохой владелец или разрешения» при попытке обновления из нашего собственного частного репозитория BitBucket.

philistyne 20.02.2020 13:33

Это сработало для меня. Я все еще использую Win 10 1703 и использую вручную установленную версию Win32-OpenSSH.

Derek Evermore 06.07.2020 19:56

Я не уверен, какая версия Windows у вас установлена, но, поскольку это недавняя версия, я бы предположил, что это Windows 10. Недавно я обнаружил, что клиент OpenSSH установлен по умолчанию с апрельского обновления 2018 года. Затем я обнаружил, что у меня есть два экземпляра OpenSSH: тот, который я установил сам, и тот, который мне дала Windows. Удаление того, что я установил, вызвало сообщение об ошибке, которое вы описываете.

Решение, которое сработало для меня, заключалось в том, чтобы удалить установленный пользователем OpenSSH, а также папку C:\Users\username\.ssh и позволить Windows 10 OpenSSH создать папку при следующем запуске команды. У меня не было конфигурации, которую я боялся потерять, но если вы это сделаете, я бы посоветовал скопировать и вставить куда-нибудь содержимое файлов, а затем восстановить их.

Надеюсь это поможет!

Проверка разрешений, предоставленных самим ssh.exe после удаления папки .ssh, и их применение к остальным файлам решила проблему для меня.

Raúl Salinas-Monteagudo 31.05.2019 13:43

Для всех, у кого все еще есть проблемы после применения владельца + модификации (плюс полный контроль для администраторов): у меня это не сработало. Затем я увидел решение по удалению всех остальных пользователей (включая всех администраторов), которое тоже не помогло.

Это сработало для меня:

  • оставьте Систему и Администраторов на месте, с полным контролем, как предложено выше
  • оставьте самого пользователя на месте, как владельца, с изменением, как предложено выше
  • однако удалите любого другого пользователя или группу. Возможно, сначала нужно перейти на расширенный, чтобы отключить наследование прав

после того, как я удалил пользователя с правами администратора, который был добавлен Windows после входа в мою папку (через поле UAC), это снова сработало для меня.

Надеюсь, это поможет всем, кто столкнется с этой конкретной проблемой :-)

Используйте FixUserFilePermissions.ps1 для исправления разрешений файлов на стороне клиента - ключей и файлов конфигурации текущего пользователя.

git clone [email protected]:PowerShell/openssh-portable.git
cd openssh-portable/contrib/win32/openssh
.\FixUserFilePermissions.ps1 -Confirm:$false

Мне пришлось клонировать репо, cd в /openssh-portable/contrib/win32/openssh, а затем выполнить указанную выше команду. Намного проще, чем настраивать свойства и разрешения файлов Windows.

SomeGuyOnAComputer 20.08.2019 05:57

Если пользователь находится в административной группе, просто сохраните конфигурацию в c: \ programdata \ ssh \ ssh_config вместо% USERPROFILE% .ssh \ config, будет работать

Это было решение, которое я в конечном итоге использовал. У компьютера было то же имя, что и у пользователя, и это означало, что мне не нужно было его менять.

Andy Castles 12.01.2021 12:20

Проблема, похоже, из-за того, что файлы принадлежат / имеют разрешение более чем для одного пользователя.

1- Перейдите в папку ./ssh и для файлов config и id_rsa. Из свойств -> Безопасность -> Дополнительно: 2- Убедитесь, что пользователь, с которым вы вошли в систему, является единственным пользователем.

Это начало появляться сразу после того, как я создал другого пользователя с правами администратора, и эта учетная запись начала наследовать доступ к моей папке .ssh.

Вам не нужно вообще изменять свои разрешения.

Просто зайдите в .ssh, щелкните правой кнопкой мыши «Свойства», «Безопасность», «Дополнительно». ОТКЛЮЧИТЕ НАСЛЕДОВАНИЕ, затем щелкните пользователя-администратора (того, кто не вы) и удалите его. Применять. Сделанный.

Похоже, именно так и произошло со мной. Я бы создал еще одну учетную запись пользователя в системе для тестирования. И у него был доступ. Как только я удалил этого пользователя из доступа к папке .ssh, все заработало.

thomthom 07.12.2019 16:15

Я пробовал это, но это не решило проблему для меня

phydeauxman 05.01.2021 20:03

Большое спасибо ! Это сработало для меня. Итак, ниже была моя среда, и я надеюсь, что кто-то сочтет это полезным. - WSL 1.0 под управлением Ubuntu 20 на машине с Windows 10 - .ssh / config файл не читался бродягой и постоянно вызывал проблемы с разрешениями. - применил вышеуказанные настройки, и vagrant ssh отлично справился с почтовым приложением

Rohit Salecha 12.01.2021 05:52

Когда вы отключаете наследование, вас спросят, хотите ли вы скопировать текущие унаследованные права доступа. Выберите «Да», а затем продолжите, удалив другого пользователя, как описано выше.

pabouk 11.02.2021 21:10

Подробное обновление 2021 года. Еще нужно удалить наследование. Использование: владелец -> Полный контроль. Администратор -> Изменить. Удалите любые другие. Обратите внимание, что если вы откроете файл, он может снова изменить разрешения, в зависимости от используемого программного обеспечения.

Efren 12.05.2021 00:46

Без смены группы или чего-то еще, первый ответ правильный. Как?

  • удалить openssh из Win10 в Настройки
  • добавьте путь к git ssh.exe на ваш Path

Для меня это было исправлено запуском конфигурации chmod 0644 в ~ / .ssh / при запуске WSL.

Для тех, кто все еще борется с этим, обратите внимание на это: https://github.com/PowerShell/openssh-portable/pull/418. Так было со мной. Оказывается, ваш компьютер должен называться иначе, чем ваше имя пользователя ... ?‍♂️ Вероятно, это будет скоро исправлено в будущих обновлениях, потому что исправление попало в фиксацию.

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

Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится.

Muhammad Dyas Yaskur 04.02.2020 02:46

Большое спасибо. Это исправило это для меня

Tin Nguyen 25.05.2020 22:21

Совершенно верно. Мое имя пользователя и имя компьютера совпали. Переименование на другие имена устранило проблему. Спасибо

Jamaxack 29.05.2020 18:01

Спасибо, это решило проблему для меня! Проблема до сих пор не устранена, мне пришлось изменить имя компьютера.

Liga 15.10.2020 15:23

Для меня это было исправлено запуском конфигурации chmod 0644 в ~ / .ssh /. Ранее он был установлен на 755, что вызывало "Неверный владелец или разрешения на /home/home/.ssh/config"

Да!! Он также работает под Windows 10 (выполняется через Git Bush).

Grigory Kislin 07.08.2020 09:48

Я попробовал все вышеперечисленные решения и, к сожалению, все еще не могу исправить эту проблему. Я почти уверен, что разрешение моей конфигурации ssh правильное, это было проверено графическим интерфейсом пользователя Explore и командами Get-Acl.

Затем я наконец нашел способ решить эту проблему:

удалите всю папку .ssh, затем откройте PowerShell и введите ssh localhost. Он создаст для вас новую папку .ssh, после чего вы сможете применить указанные выше настройки разрешений (для меня я сделал только одно: отключил наследование).

Так что, если другие решения не работают для вас, возможно, вы можете попробовать это. Надеюсь, это поможет.

PS: не забудьте сделать резервную копию своей старой папки .ssh перед ее удалением.

У меня была эта проблема, и никакое изменение разрешений или отключение наследования в файле конфигурации не помогло бы ее исправить. Оказалось, что ему не нравится, что имя моего компьютера и имя пользователя совпадают, поэтому я переименовал свой компьютер, разрешил open ssh воссоздать файл конфигурации, и теперь разрешения верны. Наверное, это было плохой идеей для начала, черт возьми.

Пожалуйста, сосредоточьтесь на ответе на вопрос без добавления субъективного описания

Christophe Hubert 10.05.2020 17:05
  1. Переименуйте файл config во что-нибудь вроде config2
  2. Откройте этот файл с помощью блокнота
  3. Сохранить как конфигурацию (оригинальное название)

Это сработало для меня.

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

Bad owner or permissions on C:\Users\gary/.ssh/config

/.ssh должен быть \.ssh. Поэтому я пытаюсь использовать git bash (инструмент терминала при установке git в системе Windows) для запуска команды ssh. Это реально работает. Но я действительно не знаю, вызвано ли это той причиной, о которой я догадывался.

Я удалил C:\Users\user/.ssh/config и перезапустил свой материал, и все заработало.

Однако, если у вас есть что-то ценное, сначала сделайте резервную копию, на всякий случай!

На сервере Windows это связано с проблемой разрешения. Необходимо запретить другим пользователям доступ к следующим папкам

.ssh - папка

Щелкните правой кнопкой мыши по этой папке -> выберите «Предоставить доступ» -> нажмите «Удалить доступ». Щелкните правой кнопкой мыши по этой папке -> выберите «Свойства» -> «Ценные бумаги» -> Нажмите «Изменить разрешения» - удалите других пользователей, кроме идентификатора, в который вы вошли.

Повторите тот же процесс для папки, в которой находится файл .pem. (Примечание: храните файл .pem в отдельной папке)

Другие вопросы по теме