<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Usos_de_SSH</id>
	<title>Usos de SSH - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Usos_de_SSH"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Usos_de_SSH&amp;action=history"/>
	<updated>2026-10-22T10:25:24Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Usos_de_SSH&amp;diff=63810&amp;oldid=prev</id>
		<title>Javierfp: /* Acceso remoto con ssh */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Usos_de_SSH&amp;diff=63810&amp;oldid=prev"/>
		<updated>2018-01-18T16:05:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Acceso remoto con ssh&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Instalación de SSH =&lt;br /&gt;
&lt;br /&gt;
== Instalación de openssh-server ==&lt;br /&gt;
&lt;br /&gt;
openssh-server es un paquete disponible para GNU/Linux. Por defecto no viene instalado en las distribuciones, sin embargo muchos instaladores, como en el caso de Debian, que usa tasksel durante la instalación, permiten su despliegue durante el propio proceso de instalación.&lt;br /&gt;
&lt;br /&gt;
Si no está disponible en nuestro sistema podemos instalarlo, en este caso en Debian 9 (stretch), con:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install -y openssh-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez instalado el servidor podremos comprobar si está funcionando correctamente ejecutando&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl status ssh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTA&amp;#039;&amp;#039;&amp;#039;: El comando anterior sería equivalente a&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;service ssh status&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
en cualquiera de los dos casos el resultado de la salida debería contener el texto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Active: active (running)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otro modo de comprobar la operatividad del servidor ssh es comprobando si en el puerto 22, el puerto que se usa por defecto para el servicio, hay un servicio escuchando. Esto lo podemos comprobar con&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;lsof -i :22&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Debería mostrar algo del tipo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
sshd    344 root    3u  IPv4  11210      0t0  TCP *:ssh (LISTEN)&lt;br /&gt;
sshd    344 root    4u  IPv6  11212      0t0  TCP *:ssh (LISTEN)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si queremos editar algún parámetro de configuración del servidor ssh, deberíamos hacerlo en el archivo &amp;#039;&amp;#039;&amp;#039;/etc/ssh/sshd_config&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
algunas directivas a modificar podrían ser:&lt;br /&gt;
&lt;br /&gt;
* Puerto en el que escucha el servidor&lt;br /&gt;
** Activamos en el archivo la directiva (descomentando la línea correspondiente), para que el servidor escuche en el puerto 8022&lt;br /&gt;
&amp;lt;pre&amp;gt;Port 8022&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Direcciones IP en las que se mantiene a la escucha el servidor&lt;br /&gt;
* Parámetros de autenticación, como por ejemplo si se permite acceder con el usuario root&lt;br /&gt;
** Activamos en el archivo la directiva (descomentando la línea correspondiente), para permitir el acceso con el usuario root&lt;br /&gt;
&amp;lt;pre&amp;gt;PermitRootLogin yes&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Cierre automático de conexiones abandonadas&lt;br /&gt;
* Reenvío de X&lt;br /&gt;
* etc&lt;br /&gt;
&lt;br /&gt;
tras los cambios reiniciamos el servicio ssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl restart ssh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Acceso remoto con ssh =&lt;br /&gt;
&lt;br /&gt;
Para acceder remotamente a un servidor ssh utilizamos el comando ssh. La sintaxis es la siguiente&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ssh usuario@ip_o_hostname_remoto -p puerto&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
La opción -p permite especificar el puerto de escucha del servidor ssh. Si no se especifica se presupone el puerto 22.&lt;br /&gt;
&lt;br /&gt;
Otras opciones del comando pueden verse ejecutando&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Veamos un ejemplo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh root@10.200.10.9 -p 8022&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el comando anterior representa un acceso ssh con las siguientes características:&lt;br /&gt;
&lt;br /&gt;
* accedemos con el usuario &amp;#039;&amp;#039;&amp;#039;root&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* a la máquina con dirección IP &amp;#039;&amp;#039;&amp;#039;10.200.10.9&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* el &amp;#039;&amp;#039;&amp;#039;puerto&amp;#039;&amp;#039;&amp;#039; de escucha del servidor ssh en esta máquina es el &amp;#039;&amp;#039;&amp;#039;8022&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
tras la ejecución del comando el cliente ssh, es decir el comando ssh que utilizamos para acceder al servidor ssh, muestra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The authenticity of host &amp;#039;[10.200.10.9]:8022 ([10.200.10.9]:8022)&amp;#039; can&amp;#039;t be established.&lt;br /&gt;
ECDSA key fingerprint is SHA256:7VUBc58vgoKFa46Qsi33B7JgWOkm8zQWldAhBXbFUz4.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;
Warning: Permanently added &amp;#039;[10.200.10.9]:8022&amp;#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
root@10.200.10.9&amp;#039;s password: &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el mensaje anterior hace referencia a la huella dactilar o “&amp;#039;&amp;#039;&amp;#039;fingerprint&amp;#039;&amp;#039;&amp;#039;” del servidor ssh. Cada servidor ssh dispone de su propia fingerprint, de este modo se comprueba su identidad. El mensaje anterior aparecerá la primera vez que accedemos al servidor, para advertirnos de que estamos accediendo a un servidor desconocido por nuestro cliente. Si es, efectivamente, la primera vez que accedemos al mismo, deberemos aceptar su identidad representada por el fingerprint; para ello respondemos yes a la pregunta que nos plantea. Una vez aceptada la fingerprint nos pide la password del usuario con el que tratamos de acceder remotamente.&lt;br /&gt;
&lt;br /&gt;
Las fingerprint de los servidores ssh a los que accedemos se almacenan en el archivo &amp;#039;&amp;#039;&amp;#039;~/.ssh/known_hosts&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Si tratando de acceder a un servidor “conocido”, es decir uno del que ya conozcamos su identidad a través del fingerprint, recibimos un mensaje similar al anterior, deberemos de sospechar que puede tratarse de una suplantación, ya que, si fuera el servidor conocido, ya dispondría de su fingerprint y, por tanto, no sería necesaria su aceptación. Por tanto hay que estar atento a esta circunstancia al utilizar ssh.&lt;br /&gt;
&lt;br /&gt;
=== Acceso remoto con el usuario root ===&lt;br /&gt;
&lt;br /&gt;
Por defecto el servidor openssh-server no permite el acceso remoto con usuario root con contraseña. Esto es una medida de seguridad que trata de evitar ataques de repetición bajo la suposición de que todos los sistemas GNU/Linux dispone de un usuario root habilitado. Un atacante podría intentar un acceso con root a través de un robot que utilice un diccionario, para generar contraseñas “probables”, y que envíe periódicamente un nuevo intento.&lt;br /&gt;
&lt;br /&gt;
Por este motivo no se permite el acceso con root. Para permitirlo debemos editar el archivo &amp;#039;&amp;#039;&amp;#039;/etc/ssh/sshd_config&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Concretamente establecemos la directiva &amp;#039;&amp;#039;&amp;#039;PermitRootLogin&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PermitRootLogin yes&amp;#039;&amp;#039;&amp;#039;: permite acceso con root mediante cualquier sistema de autenticación permitido, incluida contraseña&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PermitRootLogin without-password&amp;#039;&amp;#039;&amp;#039;: permite acceso con root pero sin contraseña, por lo general haciendo uso de un certificado de clave pública del usuario&lt;br /&gt;
&lt;br /&gt;
=== Colores al acceder con cliente ssh ===&lt;br /&gt;
&lt;br /&gt;
Es probable que al acceder con ssh con el usuario root, los listados del comando ls no se vean coloreados. Para habilitar esta posibilidad deberemos editar el archivo /root/.bashrc del sistema remoto, descomentando las líneas a continuación de la línea de comentario&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;You may uncomment the following lines if you want `ls&amp;#039; to be colorized:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Envío de comandos remotos por ssh ===&lt;br /&gt;
&lt;br /&gt;
Otro de los usos habituales de ssh es enviar comandos a un sistema remoto sin necesidad de iniciar una sesión interactiva.&lt;br /&gt;
&lt;br /&gt;
Mediante la sintaxis:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ssh user@hostremoto &amp;#039;comando&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Se ejecuta comando en el sistema hostremoto, en nombre del usuario user&lt;br /&gt;
&lt;br /&gt;
Ejemplo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh jefe@miserver.com &amp;#039;ls -la /&amp;#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pueden concatenarse comandos intercalando el carácter &amp;#039;&amp;#039;&amp;#039;;&amp;#039;&amp;#039;&amp;#039; entre una lista de comandos pasados en el último parámetro&lt;br /&gt;
&lt;br /&gt;
Si el comando es interactivo y necesita intervención por parte del usuario usamos la opción -t&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ssh -t user@hostremoto &amp;#039;comando&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Ejemplo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh -t jefe@miserver.com &amp;#039;top&amp;#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Configuración de autenticación automática =&lt;br /&gt;
&lt;br /&gt;
Es bastante común el tener que utilizar el protocolo ssh desde scripts o tareas automáticas, en las cuales el usuario no actúa directamente sobre el sistema de destino.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, imaginemos una tarea automática de copia de seguridad que se ejecuta diariamente y que culmina con el envío de un archivo con la copia a un servidor mediante ssh. En el punto en el que se realiza el acceso remoto no hay ningún usuario disponible para introducir la credencial de acceso, por ejemplo la contraseña, al mismo.&lt;br /&gt;
&lt;br /&gt;
Para estos casos el protocolo ssh permite autenticación basada en criptografía asimétrica o de clave pública. Esta técnica hace uso de un par de certificados público/privado, que permiten&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Confidencialidad&amp;#039;&amp;#039;&amp;#039;: Cifrar toda la comunicación entre cliente y servidor&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Autenticación&amp;#039;&amp;#039;&amp;#039;: Acreditar la identidad del cliente al servidor&lt;br /&gt;
&lt;br /&gt;
En la siguiente imagen veremos el proceso necesario para desplegar la autenticación automática mediante par de claves&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ssh_rsa_auto.png]]&lt;br /&gt;
&lt;br /&gt;
Veamos el procedimiento para ponerlo en marcha&lt;br /&gt;
&lt;br /&gt;
== Creación de par de claves RSA ==&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar autenticación automática ssh necesitamos generar un par de claves ssh en el cliente. Para ello ejecutamos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh-keygen&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
aceptando las opciones por defecto generará un par de claves RSA pública/privada&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;~/.ssh/id_rsa.pub&amp;#039;&amp;#039;&amp;#039;: Clave pública, será la utilizada para la autenticación remota, que deberá ser transferida al servidor para acreditar la identidad del cliente, y por tanto autenticarlo.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;~/.ssh/id_rsa&amp;#039;&amp;#039;&amp;#039;: Clave privada, será utilizada para cifrar un mensaje de autenticación que el servidor descifrará con la clave pública, acreditando por tanto la identidad del cliente, ya que éste será el único usuario con acceso a la clave privada. Es muy importante que esta clave no salga de la máquina del cliente, y que ningún otro usuario tenga acceso a ella.&lt;br /&gt;
&lt;br /&gt;
== Transferencia de la clave pública al servidor ==&lt;br /&gt;
&lt;br /&gt;
El siguiente paso en el procedimiento es transferir la clave pública al servidor ssh. De este modo, cuando se envíe el mensaje de autenticación desde el cliente, cifrado con su clave privada, podrá acreditar su autenticidad, utilizando para descifrarlo la clave pública, ya que el cliente es el único poseedor legítimo de la clave privada.&lt;br /&gt;
&lt;br /&gt;
Para transferir la clave pública desde el cliente al servidor ssh ejecutamos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.200.10.9 -p 8022&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Durante la transferencia de la clave pública, llevada a cabo por el comando anterior, y solamente en esa ocasión, deberemos de introducir la contraseña de acceso al servidor para el usuario root.&lt;br /&gt;
&lt;br /&gt;
Una vez completado el comando, podremos comunicarnos remotamente mediante ssh con el servidor desde el cliente, con el usuario de sesión del cliente, para iniciar sesión con el usuario root en el servidor.&lt;br /&gt;
&lt;br /&gt;
Si necesitamos acceder con otro usuario al servidor, o bien utilizando otro usuario en el cliente para acceder, debemos repetir los pasos anteriores para los usuarios en cuestión.&lt;br /&gt;
&lt;br /&gt;
En el servidor las claves públicas de acceso ssh se almacenan en el archivo &amp;#039;&amp;#039;&amp;#039;~/.ssh/authorized_keys&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Ahora podremos acceder, sin necesidad de especificar la contraseña, al sistema remoto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh root@10.200.10.9 -p 8022&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copia remota con scp =&lt;br /&gt;
&lt;br /&gt;
Otra utilidad que viene disponible en cliente del protocolo ssh disponible en las distribuciones GNU/Linux es el comando scp. Con el comando scp podremos realizar copias de archivos remotas desde y hacia servidores ssh.&lt;br /&gt;
&lt;br /&gt;
Veamos su uso mediante un ejemplo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;scp ~/.profile root@10.200.10.9:/tmp -P 8022&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El comando anterior copiaría el archivo .profile del directorio home del usuario (abreviado con el carácter ~) al directorio /tmp en el servidor 10.200.10.9, y ejecuta esa transferencia haciendo uso de la cuenta del usuario root en el servidor.&lt;br /&gt;
&lt;br /&gt;
Si queremos copiar un directorio deberemos usar scp con la opción -R, recursiva, la cual permite copiar directorios y todos sus contenidos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;scp -R /tmp root@10.200.10.9: -P 8022&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el comando anterior copiaría el directorio /tmp del cliente en el directorio home del usuario root en el servidor con dirección IP 10.200.10.9. Notar que el puerto del servidor en scp se indica con el parámetro &amp;#039;&amp;#039;&amp;#039;-P&amp;#039;&amp;#039;&amp;#039; (mayúscula)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;IMPORTANTE&amp;#039;&amp;#039;&amp;#039;: Al final de la ruta remota del comando debe especificarse la ruta de copia en el sistema remoto, si no se indica hay que dejar al menos el carácter “:”, el cual hace referencia al directorio home del usuario remoto utilizado.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NOTA&amp;#039;&amp;#039;&amp;#039;: También puede utilizarse scp a la inversa, es decir, copiando desde el sistema remoto al sistema local, para ello basta con invertir los parámetros de la copia&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;scp -R root@10.200.10.9:/tmp . -P 8022&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
copiaría el directorio /tmp remoto al directorio actual en el sistema local&lt;br /&gt;
&lt;br /&gt;
= Túneles ssh =&lt;br /&gt;
&lt;br /&gt;
Otro uso interesante de ssh se basa en la posibilidad de utilizar una conexión SSH con un servidor para &amp;quot;encapsular&amp;quot; comunicaciones de otros servicios. Por ejemplo, podemos acceder a un servidor MySQL en el servidor mediante un túnel SSH abierto en el servidor, sin tener que abrir explícitamente el puerto del MySQL.&lt;br /&gt;
&lt;br /&gt;
Este mecanismo ofrece varias ventajas: &lt;br /&gt;
&lt;br /&gt;
* No es necesario abrir puertos conocidos de servicios &lt;br /&gt;
* La información viaja cifrada en un túnel de seguridad &lt;br /&gt;
&lt;br /&gt;
== Comando para abrir un túnel SSH en localhost con forwarding de puertos remoto ==&lt;br /&gt;
&lt;br /&gt;
Ejecutando el comando&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh -f usuario@ssh.aloxa.proba -L 10000:192.168.56.14:80 -N&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El servidor SSH, &amp;#039;&amp;#039;&amp;#039;ssh.aloxa.proba&amp;#039;&amp;#039;&amp;#039; en este caso, escucharía en el puerto 22 (por defecto). En caso de usar un puerto diferente, lo indicarámos con la opción &amp;#039;&amp;#039;&amp;#039;-p&amp;#039;&amp;#039;&amp;#039;. La opción &amp;#039;&amp;#039;&amp;#039;-f&amp;#039;&amp;#039;&amp;#039; ejecuta el comando en background, de modo que la consola no quede asociada al comando.&lt;br /&gt;
&lt;br /&gt;
La opción &amp;#039;&amp;#039;&amp;#039;-L&amp;#039;&amp;#039;&amp;#039; indica los parámetros del túnel. En este caso estamos redirigiendo el puerto 10000, en el sistema local, al puerto 80 de la máquina remota con IP 192.168.56.14, pero lo haremos a través del puerto 22, asociado a ssh. La opción &amp;#039;&amp;#039;&amp;#039;-N&amp;#039;&amp;#039;&amp;#039; indica que se no ejecute ningún comando en la máquina remota.&lt;br /&gt;
&lt;br /&gt;
El túnel sería accedido desde la máquina local (localhost) a través del puerto 10000. Es decir, podríamos acceder al servidor web (puerto 80) del servidor remoto 192.168.56.14, a través de localhost:10000, mediante el túnel SSH establecido a través de la máquina ssh.aloxa.proba.&lt;br /&gt;
&lt;br /&gt;
Para que cualquier máquina pueda acceder al túnel, desde la misma red que la máquina en la que empieza el mismo, usaríamos la opción &amp;#039;&amp;#039;&amp;#039;-g&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh -f usuario@ssh.aloxa.proba -L 10000:192.168.56.14:80 -g -N&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
También pueden establecerse túneles inversos, en este caso permitiendo el acceso desde máquinas remotas a la máquina en la que se define el túnel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh usuario@ssh.aloxa.proba -R 10000:10.0.0.1:22&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Acceso a sistemas de archivos remotos con sshfs =&lt;br /&gt;
&lt;br /&gt;
Otro uso muy simple y útil es la posibilidad de utilizar ssh para montar sistemas de archivos remotos en rutas locales. Para conseguir este objetivo tenemos que instalar el paquete sshfs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt install sshfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación vamos a ver mediante un ejemplo el uso de esta utilidad&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /tmp/remoto&lt;br /&gt;
sshfs root@10.200.10.9:/root /tmp/remoto -p 8022&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El primer comando crea el punto de montaje dentro del directorio /tmp.&lt;br /&gt;
&lt;br /&gt;
A continuación ejecuta el montaje del directorio /root del servidor 10.200.10.9 en el punto de montaje que creamos anteriormente.&lt;br /&gt;
&lt;br /&gt;
Veamos el resultado del comando&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mount -l | grep remoto&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
muestra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;root@10.200.10.9:/root on /tmp/remoto type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=1758992858,group_id=1758986753)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
así de fácil...&lt;br /&gt;
&lt;br /&gt;
Podríamos también definir puntos de montaje en el inicio del sistema definidos en el archivo &amp;#039;&amp;#039;&amp;#039;/etc/fstab.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Para el ejemplo anterior añadiríamos una línea como la siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@10.200.10.9:/root  /tmp/remoto  fuse.sshfs \&lt;br /&gt;
noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/root/.ssh/id_rsa,\&lt;br /&gt;
allow_other,reconnect,port=8022 0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Breve explicación:&lt;br /&gt;
&lt;br /&gt;
* Accedemos al directorio /root del servidor 10.200.10.9 y lo montará en /tmp/remoto en el sistema local&lt;br /&gt;
* El sistema de archivos para el montaje es fuse.sshfs&lt;br /&gt;
* A continuación vienen las opciones de montaje típicas de sshfs. Notar el uso del parámetro IdentityFile dentro de las opciones del punto de montaje, el cual identifica en este caso el archivo de clave privada del usuario que accede al sistema remoto.&lt;br /&gt;
&lt;br /&gt;
= Navegación a través de proxy SOCKS con ssh  =&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh -f -D 8081 -p 22 root@hostremoto -N&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Establecemos un túnel de tipo SOCKS proxy que comienza en el puerto local 8081 y que reenvía todo el tráfico al puerto 22 del host remoto, permitiendo navegar a través del sistema remoto. Este tipo de túnel se utiliza ampliamente para navegar a través de un equipo remoto, evitando posibles restricciones de proxys y cortafuegos en la red local. Para que funcione es necesario establecer en navegador web la opción de salida por un proxy de tipo SOCKS, en este caso localhost, a través del puerto 8081 en este caso. Por ejemplo, en Firefox:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:socks.png]]&lt;br /&gt;
&lt;br /&gt;
En general esta idea puede extendese a cualquier servicio para evitar las restricciones salientes de los firewalls. Por ejemplo, el comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh -f -L 3000:talk.google.com:5222 root@server.home -N&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
provocaría que todo el tráfico hacia el servicio google talk pase desde el puerto 3000 local (para ello hay que reconfigurar el cliente de mensajería para que utilizar como server localhost y como puerto el 3000), al otro extremo del túnel, el host &amp;#039;&amp;#039;&amp;#039;server.home&amp;#039;&amp;#039;&amp;#039;. Es decir, todo el tráfico de salida hacia ese servicio se manda, vía túnel, a través de un servidor intermedio (server.home)&lt;br /&gt;
&lt;br /&gt;
[[Acceso_remoto|Volver]]&lt;br /&gt;
&lt;br /&gt;
JavierFP 18:57 20 nov 2017 (CET)&lt;/div&gt;</summary>
		<author><name>Javierfp</name></author>
	</entry>
</feed>