Conexión con ssh
CONEXIÓN REMOTA CON SSH
SSH Shell Segura o Terminal segura es un programa que sirve para gestionar la comunicación entre computadores. En este articulo se explica cómo puede usarse para realizar esta conexión y la forma en que podemos utilizarla a través de KDE con Konqueror y de Gnome con Nautilus.
# aptitude install openssh
Configurar el demonio SSH:
# gedit /etc/ssh/sshd_config
Protocol 2.
SSH utiliza dos protocolos para conectarse, de los cuales el 2 es el más seguro, por eso obligamos a SSHD a aceptar conexiones sólo mediante este protocolo.
PermitRootLogin no.
Dejamos deshabilitada la opción de que se conecte el usuario root de forma remota. Si es necesario hacer trabajos de mantención en el pc, es más seguro hacerlo a través de sudo.
X11Forwarding yes.
Permite correr más de un programa gráfico en la línea de comandos.
AllowUsers juan pedro@192.168.2.3 83.25.127.3
usuarios permitidos
PermitEmptyPasswords yes
habilitar usuarios sin contraseña
LoginGraceTime 30
tiempo que esperará el login antes de cerrar
MaxAuthTries 2
Maximo de errores al ingresar usuario/contraseña
MaxStartups 3
Maximo de conexiones simultaneas
Guardar y reiniciar el demonio SSH
# sudo /etc/init.d/ssh restart (stop, start)
Ejecutar programas en forma remota:
Si el demonio SSH (sshd) está corriendo en el pc servidor, abrir una terminal en el cliente he ingresar lo siguiente:
$ ssh -Y -p 1493 -l usuario Dirección_IP_servidor
-Y: Opción para ejecutar programas gráficos de forma remota.
-p: Cuando el puerto no es el 22 (por defecto) de debe especificar.
-l: Indica que queremos entrar con un usuario predeterminado, si no se utiliza SSH asume que la conexión la realiza el usuario que está en el pc cliente.
usuario: Es el nombre de usuario que se utiliza para conectarse.
Dirección IP: Es la Dirección IP del pc servidor.
La primera vez que se realiza una conexión remota al pc servidor o host, se desplegará un aviso diciendo que no puede garantizarse que la ip a la que te conectarás es autentica:
The authenticity of host ‘IP address’ can’t be established.
RSA key fingerprint is a long string of characters
Are you sure you want to continue connecting (yes/no)?
Debes contestar “yes” para que se pueda establecer la conexión.
Para ejecutar programas remotamente, basta ingresar el nombre de este a través del terminal remoto agregando “&” para que se ejecute en segundo plano dejando desocupada la terminal para permitir correr más programas:
$ firefox&
Administrar remotamente archivos, carpetas y documentos en KDE y Gnome:
Para konqueror ir al menú “Ir” > “Carpetas de red” > “Añadir a directorio de red” > “Asistente de directorio de red”, Seleccionar tipo de carpeta de red que quiere conectar, elegir “Shell Segura (SSH)” escribir el nombre de la conexión (conexion notebooK) en “nombre”, el usuario que se conectará “usuario”, la dirección ip del pc “servidor”, el puerto (si no es el 22) y la ruta al directorio /home/usuario “directorio”. “Guardar y Conectar”, si existe conexión ingresar la contraseña.
En Gnome ir a “Lugares” > “Conectar a un servidor”, se desplegara un dialogo de configuración, donde ingresar los datos que se solicitan.
Copiar ficheros:
$ scp ruta/archivo cuenta_ordenador_presente@ip_ordenador_presente:ruta/fichero
ruta/fichero es el lugar donde está el archivo a copiar en el pc remoto. cuenta_ordenador_presente es la cuenta que se está usando en el ordenador en el que se está (no el remoto). La ip_ordenador_presente es la ip de vuestro ordenador.
Supongamos que quiero copiar el fichero imagen.jpg que está en el escritorio de la cuenta “usuario” de un ordenador remoto al /home/usuario1 del ordenador presente, cuya ip es 192.168.2.5. y, ademas cambiarle el nombre a imagen1.jpg:
$ scp -p 8448 /home/usuario/Desktop/imagen.jpg usuario1@192.168.2.5:/home/usuario1/imagen1.jpg
Pedirá la contraseña de la cuenta “usuario1” en el ordenador que tenemos delante y copiará el archivo:
usuario1@192.168.1.4’s password:
imagen1.png 100% 292KB 291.7KB/s 00:00
Si ya estuvieramos en el escritorio (~/Desktop$) no habría que poner toda la ruta ya que tomaría la ruta relativa a la actual:
$ scp -P 1494 imagen.jpg usuario1@192.168.1.6:/home/usuario1/imagen1.jpg
Nota.- la ‘P’, en este caso, es mayúscula. Para copiar directorios añadir el parámetro -r
Dentro de una conexión SSH, podemos reiniciar:
~$ sudo reboot
Broadcast message from pepino@salamandra
(/dev/pts/1) at 23:45 …
The system is going down for reboot NOW!
Apagar:
~$ sudo halt
Broadcast message from pepino@salamandra
(/dev/pts/1) at 23:51 …
The system is going down for halt NOW!
O usar cualquier otra aplicación de texto.
SSH en Nautilus (Gnome)
Si solo queremos copiar archivos o ver el contenido de alguno de ellos que están en una máquina remota podemos usar nautilus por ser más amigable que la consola. Con Alt+F2 y escribir “nautilus” se abrirá el navegador de archivos. Nautilus tiene dos formas de mostrar dónde está dentro de la jerarquía de directorios. Una es a través de botones donde cada carpeta es un botón y otra que indica la ruta en modo texto. Para cambiar de modo clicar en el folio escrito con un lapiz delante.
En la caja de texto de Nautilus escribimos:
ssh://cuenta@ip_pc_remoto
ssh://usuario@192.168.2.5:1493
Pedirá la contraseña y nos colocará en la raiz de la máquina remota. Si lo que queremos es entrar en una carpeta concreta se puede indicar:
ssh://usuario@192.168.1.4:1494/home/usuario/Desktop/
Para ejecutar aplicaciones gráficas remotamente añadir el argumento -X a ssh y el nombre de la aplicación que queremos usar.
$ ssh -X -p 1493 usuario@192.168.2.5 dosbox
Otras aplicaciones para trabajar con ordenadores remotos: gFTP, SSHFS, Vino, FreeNX
CONEXIÓN REMOTA CON SSHFS
En una aplicación que permite tener una carpeta en un PC remoto y trabajar con ella como si fuera local, con total transparencia y la seguridad que ofrece SSH al estar ejecutandose como demonio.
$ sudo aptitude install sshfs
SSHFS necesita el módulo “fuse” para poder funcionar:
$ sudo gedit /etc/modules
Si no est agregar “fuse” al final del fichero cerrar el fichero y cargarlo:
$ sudo /etc/init.d/ssh start
$ sudo modprobe fuse
Agregar vuestra cuenta al grupo que tiene acceso a fuse:
$ sudo usermod -G fuse -a tu_cuenta
Reiniciar el entorno gráfico (Ctrl+Alt+Backspace) o el ordenador.
Crear una capeta para montar la carpeta remota. Vamos a probarlo.
$ mkdir /home/usuario/remoto
La carpeta “remoto” va a ser el punto de montaje de la carpeta remota. Para montarla:
$ sshfs usuario@servidor.com:dir_remoto dir_local
$ sshfs -p 1492 usuario@192.168.2.5:/home/usuario /home/usuario/remoto/
Y en /home/usuario/remoto aparecerá todo el contenido de la capeta /home/usuario del ordenador remoto por lo que todo lo que se borre, añada o modifique en esta carpeta afectará a la del otro ordenador.
Para desmontarla: $ fusermount -u dir_local
$ fusermount -u /home/usuario/compartido
CAMBIAR EL BANNER DE BIENVENIDA DE SSH
Crear o descomentar la línea Banner /etc/issue.net en el archivo de configuración del servidor ssh /etc/ssh/sshd_config.
Editar o crear el archivo de texto /etc/issue.net he insertar el mensaje deseado
Una vez logeados se muestra el banner de bienvenida (si está configurado) ubicado en /var/run/motd, que tambien puede personalizarse.
Reiniciar el demonio: # /etc/init.d/ssh restart
CONVERTIR LA IP DINAMICA EN FIJA CON NO-IP
Crear una cuenta en la página de http://www.no-ip.com.
$ sudo apt-get install no-ip
$ sudo no-ip -C
Preguntará por el e-mail y la password con que nos inscribimos en no-ip.com.
Debemos tener abiertos los puertos en nuestro cortafuegos/firewall desde donde “salen” los servicios sshd (el especificado en /etc/ssh/sshd_config) y no-ip (8245 TC).
Para conectarnos desde el cliente:
$ ssh -p puerto (el configurado) usuario@nombre.hopto.org
Para deconectar:
$ exit
Nota.- Existen clientes para acceder a servidores SSH con diferentes S.O. Para un cliente Windows, Putty es una opción a tener en cuenta.