viernes, 13 de marzo de 2015

HOW TO: Configurar servidor ssh en Microsoft Windows con Cygwin.


PASO 1: Instalar Cygwin.

Descargar desde el sitio oficial de cygwin https://cygwin.com/install.html el archivo .exe que corresponda a su arquitectura del sistema operativo (32 o 64 bits).

Crear en C la carpeta cygwin y colocar aquí el instalador descargado. En esta carpeta instalaremos el programa cygwin.  Al descargar, iniciamos la instalación:

Seleccionar la opción "Install from Internet". Pulsar Siguiente:

Seleccionar la ruta de instalación por defecto. Pulsar Siguiente:

Seleccionar la ruta de instalación por defecto. Pulsar Siguiente:

Seleccionar la configuración de internet que se ajuste a su infraestructura de trabajo. Para mi caso, seleccionaré "Direct Connection". Pulsar Siguiente:

Seleccionar algún sitio de la lista para descargas los paquetes necesarios para la instalación. Pulsar Siguiente:
 
En el campo "Search" ingresar openssh e instalar los paquetes que resulten de la busqueda (Presionar sobre la palabra "default" de la columna "New". Al pulsar acá pasará de "Default" a "Install" ). Pulsar Siguiente:

Pulsar Siguiente:




Inicio del proceso de instalación de Cygwin. Acá vemos la ventana de progreso de la instalación:

Fin de la instalación:


PASO 2: Configurar la ruta del Cygwin en el PATH de Windows:

Click derecho en Equipo -> Propiedades:

Configuración avanzada del sistema --> Opciones avanzadas --> Variables de entorno:

Buscamos y seleccionamos la palabra Path y click en botón Editar:

Al final del texto agregamos la ruta de la siguiente forma ;C:cygwin al final aceptamos todos los cambios:

PASO 3: Configurar Cygwin.
Ejecutar cygwin como administrador:

Se abrirá entonces, la consola de trabajo de Cygwin:

Crear los archivos /etc/passwd y /etc/group (si no existen). Para ello, ejecute los siguientes comandos:

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

Seguido,ejecutar los siguientes comandos (en orden). estos cambiaran los permisos de los archivos que vamos a usar y crearan el archivo sshd.log:

chmod +r /etc/passwd
chmod u+w /etc/passwd
chmod +r /etc/group
chmod u+w /etc/group
chmod 755 /var
touch /var/log/sshd.log
chmod 664 /var/log/sshd.log

Ejecutamos ahora el comando ssh-host-config enseguida nos creara las diversas llaves que vamos a utilizar e iniciara una serie de preguntas:

*** Query: Should StrictModes be used? (yes/no) yes yes
*** Query: Should privilege separation be used? (yes/no) yes yes
*** Query: new local account 'sshd'? (yes/no) yes
 Do you want to install sshd as a service? yes
*** Query: Enter the value of CYGWIN for the daemon: [] Presionar enter.
*** Query: Do you want to use a different name? (yes/no) no
 
Create new privileged user account 'XXX\cyg_server' (Cygwin name: 'cyg_server')? (yes/no) yes

Please enter the password: {INGRESAR ACÁ EL PASSWORD}
Reenter: {INGRESAR ACÁ EL PASSWORD}

Terminará la configuración. Ahora tenemos que iniciar el servicio con net start sshd:

Veremos ahora el servicio de Windows iniciado:


PASO 3: Probar Cygwin:
Prueba de conexión local.  Ejecutar el comando ssh localhost. Seguido, se nos pedirá el password, colocarlo y presionar enter:
Prueba de conexión remota.  Ejecutar el comando whoami para ver el usuario con el cual estamos conectados en el sistema operativo:

Desde una consola remota ejecutamos: ssh NOMBRE-USUARIO@IP (ejemplo: ssh MBFILESERVER+Administrador@192.168.8.246) y presionamos enter. Aceptamos la autenticidad del host e ingresar luego el password del equipo remoto cuando se nos solicite:

PASO 4: Crear y configurar un usuario para permitir conexiones ssh:

Crear un usuario el el servidor con Sistema Operativo Windows (para este ejemplo Windows Server 2008):

Inicio -> Ejecutar -> %windir%\system32\compmgmt.msc

En el Administrador de equipos seleccionar Usuarios y grupos locales -> Usuarios. Click derecho y seleccionar "Usuario nuevo":

 Ingresar los datos del usuario. Pulsar botón crear para finalizar:
Usuario creado:

Crear el usuario en cygwin. Ejecutar los siguientes comandos: 
  • cd /etc
  • cp passwd passwd_backup (hago una copia del archivo passwd).
  • mkpasswd.exe -l > passwd (genero el nuevo archivo passwd con los usuarios creados en Windows).
  • cat /etc/passwd (para ver cual es el nombre del usuario a crear, en mi caso MBFILESERVER+sshuser es el usuario a crear). 
  • net stop sshd (detengo el servicio ssh).
  • net start sshd (inicio el servicio ssh).
 
Iniciar sesión local ssh con el usuario creado.  Esto nos creará en forma automática los archivos dentro de /home/usuario:

Nuevamente, desde una consola remota y con el nuevo usuario creado ejecutamos ssh nombre-usuario@ip
(ejemplo: MBFILESERVER+Administrador@192.168.8.246) y presionamos enter. Aceptamos la autenticidad del host e ingresar luego el password del equipo remoto cuando se nos solicite:

Ya estamos entonces vía ssh, en el servidor remoto que acabamos de configurar.

No hay comentarios:

Publicar un comentario