Accesos remotos
El servicio acceso remoto consiste en acceder desde un equipo a otro de la red, y trabajar como si físicamente se estuviera en él. Los servicios más utilizados para acceder de forma remota a un sistema GNU/Linux son:
- Telnet. Permite acceder al sistema de forma remota por terminal, pero de una manera no segura.
- Open SSH. Permite acceder al sistema por terminal, pero de forma segura ya que se cifran las comunicaciones. Además, permite transferir archivos.
- VNC. Mientras que los servicios telnet y SSH permiten conectarse al servidor por medio de un terminal, el servidor VNC permite utilizar el servidor utilizando el escritorio instalado en el sistema: GNOME o KDE.
Parámetros de ssh e instalación
- El servicio ssh se puede instalar tanto en Windows como en Linux. Igualmente se puede aceder con clientes de ambos sistemas.
- El servicio ssh utiliza el puerto 22.
- Los usuarios de conexión, son los propios de la máquina Linux donde está instalado el servidor.
- El servicio ssh tiene dos ventajas muy importantes con respecto al servicio Telnet:
- El servicio ssh es seguro a diferencia de telnet.
- El servicio ssh además de acceso remoto permite la transferencia de ficheros con la utilidad scp.
Para instalar el servidor ssh se ejecuta en la máquina servidor:
root@SistemasUbuntu:~# apt install ssh
#Comprobamos que ya se está ejecutando
root@SistemasUbuntu:~# service ssh status
En el archivo de configuración /etc/ssh/sshd_config se configuran usuarios y/o equipos cliente que se les permite conectar.
En este caso, no le vamos a configurar. Por defecto se permite conectar desde toda la red y todos los usuarios del equipo.
Conexión desde equipos cliente
En el cliente no hay que instalar nada, simplemente conectarse con:
$ ssh user@IP
$ ssh user@Nombre_Equipo
Se está utilizando acceso remoto, de forma que físicamente se va a trabajar en la máquina clienteLinux, pero controlando la máquina servidor SistemasUbuntu. Por lo que tendremos que conectarnos con un usuario de la máquina servidor. Si nos conectamos con un usuario y password configurado en ambas máquinas, bastará para realizar la conexión con: $ ssh IP
Ejemplo de conexión
miguel@clienteLinux:~$ ssh 192.168.100.103
#conectar al servidor como miguel
………………………
miguel@192.168.100.103's password:
……………….
miguel@SistemasUbuntu:~$ exit
#se observa que la propia shell dice que la máquina actual es SistemasUbuntu. Se puede ejecutar cualquier comando como si se estuviera físicamente en SistemasUbuntu.
#Al escribir exit, se sale de la sesión, y se vuelve al equipo cliente.
logout
Connection to 192.168.100.103 closed.
miguel@clienteLinux:~$ ssh juan@192.168.100.103
#Se vuelve a realizar conexión al servidor, ahora como juan. El usuario juan existe en la máquina servidor, pero no en la máquina cliente.
juan@192.168.100.103's password:
…………………
#Se pregunta quien está conectado (who). Devuelve el usuario miguel en la propia máquina SistemasUbuntu y el usuario juan, desde la red, desde la máquina 192.168.100.104
juan@SistemasUbuntu:~$ who
miguel :0 2019-04-16 20:21 (:0)
juan pts/1 2019-04-17 22:52 (192.168.100.104)
juan@SistemasUbuntu:~$ exit #Salir de ssh
logout
Connection to 192.168.100.103 closed.
Transferir archivos con comando scp.
El servicio ssh, incorpora el comando scp para copiar ficheros de la máquina servidor a la máquina cliente, o viceversa. Dicho de otra forma, el servicio ssh incorpora con el comando scp un servicio ftp que además es seguro y se conoce como sftp.
Observación
El comando scp se utiliza sin necesidad de realizar una conexión previa al servidor.
Sintaxis
scp [-r] [origen] [destino]
dónde, origen o destino lo forman: [usuario@maquina:archivo]
La opción –r es de recursiva para enviar o recibir una carpeta completa.
Ejemplo para enviar:
$ scp practica.odt juan@192.168.100.103:/home/juan/practica.odt
Se envía el archivo practica.odt al servidor ssh 192.168.100.103
Ejemplo para recibir
$ scp juan@192.168.100.103:/home/juan/practica.odt nombre.odt
Se recibe el archivo practica.odt desde el servidor ssh 192.168.100.103