¿Cómo desinstalar / reinstalar cygwin para usar el sshd?

17

Instalé cygwin / sshd sin buenos resultados. Eliminé el directorio c: \ cygwin para reinstalar. Eliminé el usuario administrador de sshd a mano.

Reinstalé el cygwin nuevamente, luego ejecuté 'ssh-host-config -y'. Curiosamente, no pregunta nada acerca de hacer un nuevo usuario. Y el procedimiento es realmente corto.

$ ssh-host-config -y
 * Consulta: ¿Sobrescribir el archivo / etc / ssh_config existente? (sí / no) sí
 Información: creación del archivo / etc / ssh_config predeterminado
Consulta: ¿Sobrescribir el archivo / etc / sshd_config existente? (sí / no) sí
 Información: creación del archivo / etc / sshd_config predeterminado
 Información: La separación de privilegios se establece en sí de forma predeterminada desde OpenSSH 3.3.
 Información: Sin embargo, esto requiere una cuenta no privilegiada llamada 'sshd'.
 Información: para obtener más información sobre la separación de privilegios, lea / usr / share / doc / openssh
ME.privsep.
* Consulta: ¿Debería usarse la separación de privilegios? (sí / no) sí
*** Información: Actualización del archivo / etc / sshd_config

*** Información: configuración del host finalizada. ¡Que te diviertas!

Cuando ejecuté 'cygrunsrv -S sshd', recibí un error. "Win 32 error 1069: el servicio no se inició debido a un error de inicio de sesión". Es un mensaje razonable, ya que eliminé el sshd como usuario, y el procedimiento de reinstalación no hizo nada por eso nuevamente.

Veo que tengo algo mal con la desinstalación.

P: ¿Cómo puedo desinstalar perfectamente lo relacionado con sshd para poder reinstalarlo nuevamente?

prosseek
fuente
Si todo lo demás falla: superuser.com/questions/167219/...
ndemou

Respuestas:

37

Si sshd se ha instalado previamente en el sistema, se debe realizar el siguiente procedimiento de limpieza antes de invocar ssh-host-config:

# Remove sshd service
cygrunsrv --stop sshd
cygrunsrv --remove sshd

# Delete any sshd or related users (such as cyg_server) from /etc/passwd
#   (use your favorite editor)

# Delete any sshd or related users (such as cyg_server) from the system
net user sshd /delete
net user cyg_server /delete
Kentgrav
fuente
Tenga en cuenta que, como cuando se instaló sshd, el shell cygwin debe ejecutarse como administrador.
f.ardelian
3
No había ningún archivo /etc/passwdpara mí. Aparte de eso, esto funcionó!
John
Usted dijo "# Eliminar cualquier sshd o usuarios relacionados (como cyg_server) de / etc / passwd" OK. Pero luego dijiste "# Eliminar cualquier sshd o usuarios relacionados (como cyg_server) del sistema" Eso parece estar repitiéndose. Y luego dijiste que el usuario neto ordena debajo de esa línea. Pero esos comandos no eliminan usuarios del sistema. Eliminan los servicios.
barlop
Con los usuarios del sistema, se refiere a los usuarios de su PC con Windows. Con / etc / passwd users se está refiriendo a los usuarios definidos en este archivo para el entorno cygwin Unix-y (si lo hay). "Esos comandos" eliminan usuarios: technet.microsoft.com/en-us/library/cc771865(v=ws.11).aspx
ndemou
4

Tuve que hacer tres pasos para reinstalarlo.

  • eliminar LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ services \ sshd
  • ejecute 'sc delete sshd'
  • reiniciar

El problema es que no puedo iniciar sesión en el cygwin desde Mac, que es la razón exacta por la que intenté reinstalar el cygwin.

Hice otro hilo sobre este problema. -> No puedo iniciar sesión en cygwin / ssh desde Mac

prosseek
fuente
Encontré el mío en ControlSet002 después de una búsqueda rápida de claves que coinciden con "sshd"
ndemou
1

Mirando este enlace

https://www.cygwin.com/ml/cygwin/2014-03/msg00315.html

La sugerencia de alguien del enlace anterior, parece ser una gran lista de verificación, exhaustiva, sin atajos y rápida, y el IIRC funcionó para mí.

Eliminar todos los archivos relacionados con ssh de / etc.
Eliminar / var / vacío.
Elimine los registros ssh de / var / log.
Elimine las cuentas sshd y cyg_server de su SAM. Suelta ambos desde / etc / passwd.
Elimina el servicio sshd. Comenzar de nuevo.

Nota: donde dice "empezar de nuevo", eso podría ser una charla americana para reiniciar, en este caso, windows. Donde dice eliminar un servicio, es posible que necesite o desee detener el servicio antes de eliminarlo. Puede ser que no necesite reiniciar, aunque puede que sí. (por lo que solo podría reiniciar si aún no funciona). Y donde dice "su SAM", eso significa dónde almacena a los usuarios de Windows - se muestran en 'gestión de la computadora' - cygwin ssh agrega usuarios allí, veo usuarios cyg_server y sshd allí, puede eliminarlos de la interfaz gráfica de usuario o de la línea de comandos. Y volviendo a detener y eliminar un servicio, hay muchos comandos que pueden hacerlo. cygrunsrv, sc, net, y de esos, no he visto una ventaja con cygrunsrv. y este chico jaypiensa que sc es más confiable para detenerlos o eliminarlos, eso puede ser así. Otras respuestas han cubierto re comandos para detener y eliminar un servicio.

barlop
fuente