Instalación
Vamos a usar OpenSSH por tanto vamos a instalarlo:
sudo apt-get install openssh-server
Configuración del servidor
Por seguridad se hace un respaldo del archivo antes de iniciar la configuración:
sudo cp /etc/ssh/sshd_config{,.bak}
Una vez instalado, vamos a configurar el servidor, hacemos en consola:
sudo nano /etc/ssh/sshd_config
Y podremos editar sus opciones, a continuación se muestra el contenido del archivo con la configuración correspondiente:
# Package generated configuration file
# See the sshd_config(5) manpage for details
# Ponemos el puerto a escuchar por el SSH, por defecto es el 22. Deberemos abrir un puerto en nuestro router redirigiendo hacia la IP interna de la máquina donde lo tengamos.
Port 22
# Usaremos el protocolo 2 de SSH, mucho más seguro, por tanto forzamos a que siempre conecten por protocolo 2.
Protocol 2
# HostKeys for protocol version 2. El lugar donde se guardan las keys.
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 2048
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication, importante la parte PermitRootLogin…es vuestra decisión
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Don’t read the user’s ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don’t trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
#Banner /etc/issue.net
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
MaxAuthTries 2
Para arrancar el servidor:
sudo /etc/init.d/ssh start
* Starting OpenBSD Secure Shell server sshd
Para parar el servidor:
sudo /etc/init.d/ssh stop
* Stopping OpenBSD Secure Shell server sshd
Para reiniciar el servidor:
sudo /etc/init.d/ssh restart
Para ver los LOGS de conexión haced esto:
cat /var/log/auth.log | grep -Ei ssh
Opcional Cambiar los puertos para escuchar por TCP Y UDP en SSH
Cambiar el puerto del ssh es tan sencillo como hacer lo siguiente:
nano /etc/ssh/sshd_config
Editamos la linea dice
#Port 22
La descomentamos (quitamos la almoadilla) y cambiamos el 22 por el puerto que queramos. Nos tenemos que asegurar de que el puerto que elijamos no esté ya en uso (Aquí tenemos unalista de puertos). Por ejemplo, si elegimos el puerto 27, la línea quedará:
Port 27
Ahora editamos el archivo /etc/services
nano /etc/services
buscamos las líneas:
ssh 22/tcp
ssh 22/udp
y las cambiamos por el nuevo puerto que hemos seleccionado antes:
ssh 27/tcp
ssh 27/udp
Ahora paramos e iniciamos el servidor ssh:
/etc/init.d/ssh restart
Y ya lo tenemos. A partir de ahora, cuando queramos acceder a nuestro servidor mediante ssh, deberemos especificar el puerto por el que nos queremos conectar. Por ejemplo:
ssh [email protected] -p27
Puede que te salte algún error relacionado con las public keys. Es normal, ya que anteriormente ha detectado movimiento en el puerto 22. Simplemente hay que borrar esos public keys:
rm ~/.ssh/known_hosts