root@server:~# apt-get install openssh-server openssh-client
Todas las posibilidades de configuración del servidor ssh están en el archivo /etc/ssh/sshd_config.
Para configurar el servidor hay que indicar las direcciones ip donde el servicio va a “escuchar” y “responder”. En este caso son conexiones ligadas a la dirección 192.168.1.100, a través del puerto 22 y utilizando la versión 2 del protocolo ssh:
# Package generated configuration file # See the sshd_config(5) manpage for details # What ports, IPs and protocols we listen for Port 22 # Use these options to restrict which interfaces/protocols sshd will bind to #ListenAddress :: #ListenAddress 0.0.0.0 ListenAddress 192.168.1.100 Protocol 2 #[...]
Por seguridad, conviene desactivar el login como root. En esta configuración, para adquirir los privilegios de root, hay que iniciar una sesión login con una cuenta de usuario normal y, después, adquirir los privilegios de root. Así se previenen los ataques a la contraseña password de la cuenta root.
#[...] # Authentication: LoginGraceTime 120 PermitRootLogin without-password StrictModes yes #[...]
También hay que impedir las sesiones o logins de cuentas sin contraseña (Empty Passwords):
#[...] # To enable empty passwords, change to yes (NOT RECOMMENDED) PermitEmptyPasswords no #[...]
Por último, para que el servicio tome los cambios que se han hecho en el archivo de configuración, se reinicia el servicio:
root@server:~# service ssh restart
Debe ser posible establecer una conexión ssh a la dirección 192.168.1.100.
La primera vez que se establece la conexión, ésta tiene que ser confirmada, porque el servidor no está registrado en la lista de los sistemas conocidos por el cliente.
fribeiro@laptop:~$ ssh 192.168.1.100 The authenticity of host ´192.168.1.100 (192.168.1.100)´ can´t be established. ECDSA key fingerprint is a1:22:11:fd:66:9b:a7:56:44:12:ca:45:e8:87:06:e4. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ´192.168.1.100´ (ECDSA) to the list of known hosts. fribeiro@192.168.1.100´s password: The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. fribeiro@server:~$ logout Connection to 192.168.1.100 closed. fribeiro@laptop:~$
Las conexiones con el login root no se aceptarán:
fribeiro@laptop:~$ ssh root@192.168.1.100 root@192.168.1.100´s password: Permission denied, please try again. root@192.168.1.100´s password: Permission denied, please try again. root@192.168.1.100´s password: Permission denied (publickey,password). fribeiro@laptop:~$
Se puede acceder desde clientes en el sistema operativo Windows con un programa emulador del terminal que soporte ssh, como Putty:
Puesto que la sesión ó login con la cuenta de usuario root está desactivada, la única forma de obtener privilegios de root en una conexión ssh es a través de un usuario común que escala privilegios ejecutando el comando su:
fribeiro@laptop:~$ ssh 192.168.1.100 fribeiro@192.168.1.100´s password: The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sun Feb 8 18:11:22 2015 from 192.168.1.33 fribeiro@server:~$ su - root Password: root@server:~#