Разрешения каталога для Cygwin SSH (Windows 7)

Я поклонник Linux, но из-за плохих беспроводных драйверов Intel в Linux мне пришлось переключиться на Windows 7. Я установил Cygwin в Windows и хочу настроить SSH для удаленного подключения к моему ноутбуку.

Я искал в Google и обнаружил информацию для установки сервера openssh на Win 7, но при запуске ssh-host-config появляется следующая ошибка:

[email protected] ~
$ ssh-host-config
yes
*** Info: Creating default /etc/ssh_config file
*** Query: Overwrite existing /etc/sshd_config file? (yes/no) yes
*** Info: Creating default /etc/sshd_config file
*** Info: Privilege separation is set to yes by default since OpenSSH 3.3.
*** Info: However, this requires a non-privileged account called 'sshd'.
*** Info: For more info on privilege separation read /usr/share/doc/openssh/READ
ME.privsep.
*** Query: Should privilege separation be used? (yes/no) no
*** Info: Updating /etc/sshd_config file

*** Warning: The following functions require administrator privileges!

*** Query: Do you want to install sshd as a service?
*** Query: (Say "no" if it is already installed as a service) (yes/no) yes
*** Query: Enter the value of CYGWIN for the daemon: []
*** Info: On Windows Server 2003, Windows Vista, and above, the
*** Info: SYSTEM account cannot setuid to other users -- a capability
*** Info: sshd requires.  You need to have or to create a privileged
*** Info: account.  This script will help you do so.

*** Warning: The owner and the Administrators need
*** Warning: to have .w. permission to /var/run.
*** Warning: Here are the current permissions and ACLS:
*** Warning:     drwxr-xr-x 1 bala None 0 2010-01-17 22:34 /var/run
*** Warning:     # file: /var/run
*** Warning:     # owner: bala
*** Warning:     # group: None
*** Warning:     user::rwx
*** Warning:     group::r-x
*** Warning:     other:r-x
*** Warning:     mask:rwx
*** Warning:
*** Warning: Please change the user and/or group ownership,
*** Warning: permissions, or ACLs of /var/run.

*** ERROR: Problem with /var/run directory. Exiting.

Разрешения этой папки отображаются как доступные только для чтения (относится только к этой папке), отмеченные серым цветом. Я попытался снять флажок, но после того, как я снова открою свойства, поле снова будет проверено. Есть ли способ изменить права доступа к этой папке?

Ответы

Ответ 1

Я запускаю cygwin 1.7 для Windows 7 x64 и sshd. Я не помню, чтобы получить эту ошибку, когда я запускал sshd_config, но я просто посмотрел на каталог /var/run и установил значение 777.

Попробуйте это в оболочке cygwin chmod 777 /var/run

Ответ 2

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

Через несколько месяцев я наконец нашел решение. Когда я настраивал cygwin, у меня не было учетной записи пользователя и группы, правильно созданной в cygwin. Основной способ сделать это - запустить:

mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group

Если вы входите в систему с использованием пользователя домена и passwd, вы можете сделать:

mkpasswd -l -d > /etc/passwd 
mkgroup -l -d > /etc/group

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

mkpasswd -l > /etc/passwd
mkpasswd -c >> /etc/passwd
mkgroup -l > /etc/group
mkgroup -c >> /etc/group

После этого я наконец смог правильно запустить ssh-host-config, чтобы создать службу.

Ответ 3

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

  • Запустите оболочку Cygwin в качестве административного пользователя с параметром "Запуск от имени администратора".
  • Отключен UAC.
  • Уязвимость в режиме реального времени отключена.

Как только эти шаги были предприняты, шаги установки по умолчанию:

  • Установите "openssh" из установщика Cygwin.
  • Запустите оболочку Cygwin в качестве административного пользователя с параметром "Запуск от имени администратора".
  • Запустите "ssh-host-config" из оболочки Cygwin.
  • Разделение привилегий: да
  • Новая локальная учетная запись "sshd": yes
  • Установить sshd как услугу: yes
  • Значение CYGWIN: ntsec tty
  • Различное имя для "cyg_server" : no
  • Создать новую привилегированную учетную запись пользователя "cyg_server" : yes
  • Установите пароль "cyg_server" и сохраните его в надежном месте.
  • net start sshd

После этого все отлично работает как на Windows 7 Professional, так и на Home.

Если у вас уже есть неудачная установка Cygwin sshd, лучше всего выполнить полную деинсталляцию и начать новую работу.

Вот инструкции по удалению Cygwin, если они вам понадобятся: http://cygwin.com/faq/faq.html#faq.setup.uninstall-all

Ответ 4

Сначала мне пришлось удалить сломанную установку:

cygrunsrv --remove sshd
rm -rf /var/log/sshd* /etc/ssh_host* /etc/sshd_config /var/empty

затем сгенерируйте passwd и группу, как указано выше:

mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group

то я побежал:

ssh-host-config -y
cygrunsrv --start sshd

и окончательно исчезли сообщения "setuid failed", и логин работал.

Ответ 5

В оболочке cygwin убедитесь, что вы администратор:

takeown /F "C:\cygwin" /R
icacls "C:\cygwin" /grant Everyone:\(F\) /T
icacls "C:\cygwin"
chmod 777 -R "c:\cygwin"

Ответ 6

В проводнике Windows для папки /var:

Свойства.
Безопасность.
Добавить группу Администраторы с полным контролем для папки и подпапки.

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

Ответ 7

Мне удалось успешно запустить ssh-host-config script, когда я установил Cygwin на жесткий диск типа NTFS. Ssh-host-config script не работал, когда у меня был Cygwin, установленный на флешке типа exFAT.

Ответ 8

У меня была такая же проблема. Моя проблема, я считаю, состояла в том, что у меня был собственный файл /etc/fstab, где я устанавливал корневую папку с параметром "noacl". Вот как я решил проблему:

  • Измените пользовательский /etc/fstab:

     mv /etc/fstab /etc/fstab.bak
    

    В качестве альтернативы вы можете отредактировать файл /etc/fstab и удалить параметр noacl.

  • Закройте все окна Cygwin bash и любые другие процессы или службы Cygwin. Если у вас запущен любой процесс Cygwin, он будет поддерживать все настройки со старыми настройками /etc/fstab.

  • Запустите новое окно Cygwin bash.

  • Возможно, вам потребуется запустить следующее.

    chmod +r /etc/passwd
    chmod o+x /var
    chmod +w /var/run
    
  • Перекрестите пальцы, запустите ssh-host-config, и он должен завершиться без ошибок.

  • Если вы переместили свой /etc/fstab на шаг 1, вы можете переместить его обратно:

     mv /etc/fstab.bak /etc/fstab
    
  • Если вы создали новых пользователей после того, как вы впервые установили Cygwin, обновите /etc/passwd, иначе эти пользователи могут не войти в систему через ssh:

    mkpasswd -l > /etc/passwd
    
  • Также перейдите в брандмауэр Windows и разрешите C:/cygwin/usr/sbin/sshd.exe и C:/cygwin/usr/sbin/sftp-server.exe

Ответ 9

для Windows Пользователи запускают " Cygwin Terminal", щелкнув правой кнопкой мыши на ярлыке и запустив его как администратор.... введите описание изображения здесь

Теперь запустите " ssh-host-config" с терминала Cygwin... Это определенно сработает.