El ssh o Secure Shell es un protocolo y un aplicativo que nos otorga un control total sobre un sistema remoto. Además nos sirve para copiar ficheros de forma cifrada, gestionar claves publicas RSA, permitiéndonos no escribir claves al conectar a las máquinas. Finalmente también nos permite pasar los datos de cualquier otra aplicación por un canal seguro tunelizadomediante SSH.
En principio es muy similar a telnet, pero la información viaja cifrada, lo que impide que cualquier persona con un sniffer pueda captar el usuario y contraseña y comprometa la seguridad del sistema.
Un dato interesante es que SSH es propietario
http://www.ssh.com/ (permiten el uso domestico y académico de forma gratuita pero las empresas deben pagar la licencia) , aunque existe una versión libre que es OpenSSH (
http://www.openssh.com/). Por otro lado, es muy recomendable utilizar la versión SSH2 y no la SSH1 que esta obsoleta.
Este sistema utiliza una conexión por medio de "llaves", que consisten en un numero cifrado. En realidad es como una llave y una cerradura. En el servidor existe una llave pública ( esta sería la cerradura) y en el cliente una llave privada (esta sería nuestra llave, propiamente dicha)
La generación de llaves puede hacerse con:ssh-keygen -t dsa
esto generará una llave pública, normalmente en ~/.ssh/id_dsa.pub y una llave privada en ~/.ssh/id_dsa (protegida por una palabra clave que nosotros definimos). La llave privada, como su nombre indica, es privada ( secreta) y cumple la función de password, por el contrario la llave pública vista por cualquiera y no hace falta protegerla ya que es completamente inútil sin la llave privada.Para la conexión automática se debe volcar la llave pública en el fichero ~/.ssh/authorized_keys en la máquina que queremos conectarnos.Cuando nos intentemos conectar desde nuestra máquina local a la remota ya no se tendrá que dar la clave de autentificación sino la palabra clave con la que protegió su llave privada. Es más la palabra clave se puede dar una sola vez y las siguientes veces que nos conectemos desde nuestra máquina local ya no nos la pedirá.
Para iniciar una sesión en un sistema remoto: ssh remote_ip
shh username@remote_ip
Como copiar archivos:
scp local_file user_name@remote_ip:remote_file
scp user_name@remote_ip:remote_file local_fie