2010-01-29 33 views
15

Soy fanático de Linux pero debido a los malos controladores inalámbricos Intel en Linux, tuve que cambiar a Windows 7. He instalado Cygwin en Windows y quiero configurar SSH para conectarlo de forma remota a mi computadora portátilPermisos de directorio para Cygwin SSH (Windows 7)

busqué en Google y encontró information for installing openssh server on Win 7, pero yo estoy recibiendo el siguiente error cuando se ejecuta 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. 

Los permisos de esta carpeta se muestran como de sólo lectura (sólo se aplica a esta carpeta), comprobado en gris Intenté quitar la marca, pero después de abrir nuevamente las propiedades, el cuadro se vuelve a verificar. ¿Hay alguna manera de cambiar los permisos de esta carpeta?

+2

¿está relacionado con la ventana UAC? ¿sucederá si ejecuta Cygwin usando Administrator? – Tommy

+0

De hecho, desactivé el UAC en mi máquina. Esto sucede incluso cuando se usa "ejecutar como administrador" – Boolean

+0

¿Debería estar esto en SuperUser? No está relacionado con la programación. – Catchwa

Respuesta

5

Estoy ejecutando cygwin 1.7 en Windows 7 x64 y sshd. No recuerdo conseguir este error cuando me encontré sshd_config, pero Yo miraba a mi directorio/var/run y que está establecido en 777.

probar este en una cáscara de cygwin chmod 777 /var/run

+1

+1. Cambia los permisos dentro de Cygwin y vuelve a intentarlo. – Arkaaito

+0

Intenté esta opción también. bala @ bala-PC ~ @ bala bala-PC ~ $ chmod 777/var/run bala @ bala-PC ~ $ ls -l/var total de 0 drwxr-xr-x 1 bala Ninguna 0 2010-01-17 22:34 caché drwxr-xr-x 1 bala Ninguna 0 2010-01-17 22:35 cron drwxr-xr-x 1 bala Ninguna 0 2010-01-23 11:46 vacío drwxr-xr-x 1 bala Ninguna 0 2010-01-17 22:34 lib drwxr-xr-x 1 bala Ninguna 0 2010-01-17 22:32 log drwxr-xr-x 1 bala Ninguna 0 2010-01 -17 22:34 ejecutar drwxr-xr-x 1 bala Ninguna 0 2010-01-17 22:34 tmp -rw-r - r-- 1 bala Ninguna 0 2010-01-23 11:44 utmp – Boolean

+0

lo siento, la salida no parece estar formateada correctamente. He intentado -R 777 opción también. – Boolean

2

En una cáscara de cygwin, asegúrese de que está a continuación, el administrador:

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

Esto, también, no funciona para mí.Creo que la respuesta a por qué esto no funciona para algunos de nosotros debe estar en los permisos de Windows para/var/run. * Nada * Lo he hecho, sin embargo, ha tenido algún efecto. Eliminé * todos * los permisos en/var/run e hice algunos que están abiertos. Nada. – e40

+2

Lo sentimos, esto no funcionó en mi caso –

+0

Esto funcionó en win7, cygwin64: setfacl -b ~/.ssh/config; chmod 0600 ~/.ssh/config; de http://superuser.com/questions/348694/bad-owner-or-permissions-error-using-cygwins-ssh-exe – mosh

8

sentimos a desenterrar un hilo tan viejo, pero siempre esta pregunta surgió cuando busqué en google este problema específico.

Después de unos meses, finalmente encontré una solución. Cuando configuré cygwin, no tenía mis cuentas de usuario y grupo creadas correctamente en cygwin. La principal forma de hacer esto es ejecutar:

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

Si está registrando en el uso de un usuario de dominio y passwd, que puede hacer:

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

O, si usted tiene una increíblemente amplia red como mío, puede que realmente no quieras eso. Una alternativa es solo usuario a los usuarios locales y el grupo más lo que se ha iniciado sesión como:

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

Después de hacer esto, que finalmente fue capaz de ejecutar ssh-host-config correctamente para crear el servicio.

+0

Hola Matthew, probé estas opciones, pero todavía no me permite proporcionar un " contraseña en blanco " –

+1

Este consejo es obsoleto desde Cygwin 1.7.35, donde la forma predeterminada de obtener información de nombre de usuario/grupo proviene de las bases de datos nativas de Windows, ya sea SAM o AD, dependiendo de si su sistema está en un dominio de Windows o no. A menos que tenga una necesidad muy específica de poder anular SAM/AD a través de los archivos '/ etc', no debería tener estos archivos ahora. Consulte [Capítulo 3 en la Guía del usuario de Cygwin] (https://cygwin.com/cygwin-ug-net/ntsec.html). –

4

Tuve muchos problemas con esto yo mismo. He encontrado que los pasos de instalación predeterminados funcionan bien siempre que I:

  1. Inicie el shell Cygwin como un usuario administrativo con la opción "Ejecutar como administrador".
  2. Tiene el UAC deshabilitado.
  3. Tener desactivada la protección antivirus en tiempo real.

Una vez que se han tomado estas medidas, la instalación por defecto pasos son:

  1. instalar "OpenSSH" desde el instalador Cygwin.
  2. Inicie el shell Cygwin como un usuario administrativo con la opción "Ejecutar como administrador".
  3. Ejecute "ssh-host-config" desde el shell de Cygwin.
  4. Privilegio Separación: sí
  5. Nueva cuenta local "sshd": si
  6. Instalar sshd como servicio: sí
  7. valor CYGWIN: TTY ntsec
  8. Otro nombre para "cyg_server": no
  9. Crear nueva cuenta de usuario con privilegios "cyg_server": si
  10. Set "cyg_server" contraseña y guardarla en un lugar seguro
  11. sshd net start

Después de eso, todo parece funcionar bien en Windows 7 Professional y Home.

Si ya tiene una Cygwin sshd fallado la instalación, puede que sea mejor que hacer una desinstalación completa y empezar de cero.

Estas son las instrucciones de desinstalación de Cygwin si los necesita: http://cygwin.com/faq/faq.html#faq.setup.uninstall-all

0

yo sólo era capaz de ejecutar la secuencia de comandos ssh-host-config éxito cuando he instalado Cygwin en un disco duro de tipo NTFS. La secuencia de comandos ssh-host-config no funcionaba cuando Cygwin estaba instalado en una unidad flash de tipo exFAT.

0

Estaba teniendo el mismo problema. Mi problema, creo, fue porque tenía un archivo/etc/fstab personalizado donde estaba montando la carpeta raíz con la opción "noacl". Aquí es cómo he resuelto el problema:

  1. Mover la costumbre/etc/fstab fuera del camino:

    mv /etc/fstab /etc/fstab.bak 
    

    Como alternativa, puede editar el archivo/etc/fstab y eliminar la opción noacl .

  2. Cierre todas las ventanas de bash de Cygwin y cualesquiera otros procesos o servicios Cygwin. Si tiene un proceso Cygwin en ejecución, mantendrá las cosas montadas con la configuración anterior/etc/fstab.

  3. crear una nueva ventana de bash Cygwin.

  4. Es posible que deba ejecutar lo siguiente.

    chmod +r /etc/passwd 
    chmod o+x /var 
    chmod +w /var/run 
    
  5. cruzar los dedos, ejecutar ssh-host-config, y ahora deberán completar, sin errores.

  6. Si movió su/etc/fstab en el paso 1, se puede mover de nuevo ahora:

    mv /etc/fstab.bak /etc/fstab 
    
  7. Si ha creado nuevos usuarios después de instalar por primera vez Cygwin, actualizar/etc/passwd, de lo contrario los usuarios pueden no ser capaces de acceso a través de SSH:

    mkpasswd -l > /etc/passwd 
    
  8. también, vaya a Firewall de Windows, y permitir C: /cygwin/usr/sbin/sshd.exe y C:/cygwin/usr/sbin/SFTP -servidor.exe

3

La primera vez que tuvo que retirar la fractura de la instalación:

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

luego generar passwd & grupo como se mencionó anteriormente:

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

entonces me encontré:

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

y finalmente, los mensajes de "fallo de setuid" desaparecieron y el inicio de sesión funcionó.

1

En el Explorador de Windows, para la carpeta /var:

Propiedades.
Seguridad.
Agregue administradores de grupo con control total para la carpeta y las subcarpetas.

Funciona para mí.

+0

gracias, funciona para mí también. – WildDev

0

para ventanas Los usuarios ejecutan "Cygwin Terminal" haciendo clic derecho en el acceso directo y ejecutarlo como administrador .... enter image description here

Ahora Ejecutar "ssh-host-config" de la Cygwin Terminal ... Definitivamente funcionará.

Cuestiones relacionadas