Utilizar ssh para la transferencia de archivos de una PC remota a otra.

Para configurar SSH para la transferencia de archivos de un Servidor a un Cliente o en sentido contrario, debemos de seguir los siguientes pasos, también hablaremos de las diferentes formas de Login frente a un Servidor SSH y como crear un Túnel el cual es lo mismo que un reenviador de Puertos con SSH. Primero debemos de Instalar el SSH, en este documento trabajaremos con OpenSSH, y utilizaremos el siguiente comando para la instalación:
# apt-get install ssh

Configuración

Después de la instalación podemos entrar a configurar el archivo del demonio con las necesidades que tengamos para nuestro Servidor, el archivo se encuentra en la ruta /etc/ssh/ y tiene el nombre de sshd_config, algunos parámetros que podemos configurar para el SSH dentro de este archivo son:
gedit /etc/ssh/sshd_config

Port 22
Este es el puerto por el cual va a escuchar nuestro Servidor lo podemos cambiar.
Protocol 2
Este será la Versión con la cual vamos a trabajar, en este caso con la Versión 2.
LoginGraceTime 120
Este será el tiempo que tendrá el Usuario para el Login frente al Servidor, este tiempo es en segundo.
PermitRootLogin no
Este parámetro es para permitir que las conexiones se puedan realizar como Root.
MaxStartups 2
Esta línea es para indicar cuantas conexiones vamos a permitir simultáneamente en el Servidor.
MaxAuthTries 2
Esta será para el máximo de intentos de Login frente al Servidor.
PassworAuthentication yes
Aquí le diremos al Servidor si queremos trabajar con Autenticación con Login.
ListenAddress 192.168.1.1
Aquí le estamos indicando que solo escuche peticiones por la interfaz con esta IP.
X11Forwarding yes
Esta línea es para indicarle al Servidor si vamos a permitir aplicaciones graficas por medio de la consola SSH.
DenyUsers root@192.168.1.67
Con esta linea podemos denegar la conexión de dicho usuario a a dicho equipo de la red, en este caso el PC con la IP 192.168.1.67 y con el Usuario Root.

NOTA: Después de toda configuración en el Archivo sshd_config debemos de reiniciar el Servidor para que tome los cambios, lo haremos con el siguiente comando (# /etc/init.d/ssh restart).

Conectarnos por SSH
Por medio de la Consola
Para conectarnos por medio de SSH a otro equipo (Recordemos que es un Modelo Cliente – Servidor), lo que debemos de hacer es lo siguiente:
ssh Usuario@DireccionIP

Ejemplo:
ssh administrador@172.16.96.130
NOTA: La primera vez que nos conectemos desde un Cliente al Servidor el nos preguntara si estamos seguros de continuar con la conexión (SI/NO), le diremos que SI. Después el nos pedirá la contraseña del Usuario con el cual estamos accediendo al Servidor, el cual puede ser un Usuario local o el mismo Root del Servidor SSH.
Si hemos cambiado el Puerto del Servidor el comando para conectarnos de al Servidor será el siguiente:
ssh –p Puerto Usuario@DireccionIP
Ejemplo:
ssh –p 2233 administrador@172.16.96.130
Si queremos salir de una conexión SSH, solo debemos de digitar en la consola el comando Exit, así:
exit
y mostrara el mensaje
logout
Connection to 172.16.96.130 closed.

Copiar Archivos por SSH
Ahora si lo que queremos es copiar archivos del un equipo a otro, utilizaremos el siguiente comando:
scp RutadelArchivoaCopiar Usuario@DireccionIPdelDestinatario:RutadelDestinatario
Ejemplo:
scp /home/pepe/Desktop/ejemplo.odt bluder@192.168.1.67:/home/bluder/
En este ejemplo lo que estamos haciendo es copiando un archivo desde el Cliente, el cual se llama ejemplo.odt que se encuentra en la maquina Cliente, copiaremos el archivo al Servidor el cual tiene la IP 192.168.1.67 y un Usuario con el nombre de Bluder, este Usuario es local del Servidor y por ultimo indicamos en que directorio quedara el archivo (Al final del directorio del destinatario podemos indicar otro nombre para el archivo que queremos copiar si queremos que quede con un nombre diferente al original).
NOTA: Si es la primera vez que copiamos archivos, nos preguntara si estamos seguros de continuar con la conexión (SI/NO), después debemos ingresar la contraseña del Usuario de la maquina local, en este caso Bluder
Si es el caso que cambiamos el puerto del SSH, lo que debemos de hacer para copiar archivos por medio de SSH es añadir al comando la opción –P y el puerto (La –P en Mayúscula), así:

scp –P Puerto RutadelArchivoaCopiar Usuario@DireccionIPDestinatario:RutadelDestinatario
Es el mismo comando pero le debemos de indicar el puerto por el cual está escuchando al SSH.

Por modo Grafico
Para esta conexión debemos de teclear con la ayuda del teclado Alt + F2 el cual nos abrirá una pequeña ventana que se llama Ejecutar una Aplicación, en la cual debemos de ingresar las siguientes líneas.
(En este ejemplo nos conectaremos desde el Servidor a un Usuario pepe localmente, es decir nos conectaremos a nosotros mismos con el Usuario Pepe, localmente):
ssh://Usuario@DireccionIP
Ejemplo:
ssh://administrador@172.16.96.130

NOTA: Si es la primera vez de la conexión él nos preguntara si queremos continuar, por que desconoce la computadora remota, le daremos clic en Iniciar Sesión de Todos Modos. Después el nos pedirá la contraseña de ese Usuario (Es probable que tengamos que ingresar la contraseña 2 veces), así:
Indicamos el Usuario y la Dirección IP de la Maquina Remota:

Confirmamos que quermos iniciar sesión:
Daremos la contraseña del Usuario:
Y ya podemos ver la carpetas y directorios de la Maquina Remota:
Igualmente si le cambiamos el puerto a nuestro Servidor SSH lo que debemos de hacer es agregarle el puerto de la siguiente forma:
ssh://Usuario@DireccionIP:Puerto
Ejemplo:
ssh://pepe@192.168.1.67:2233

Ejecutar Aplicaciones Web por medio de SSH

En este paso ejecutaremos como ejemplo la aplicación en debían Gimp, para creación y edición de imágenes, en este paso el Servidor SSH tiene la aplicación instalada pero el Cliente no, por lo cual lo vamos a ejecutar con el siguiente comando:
ssh –X Usuario@Direccionip AplicacionGrafica
Ejemplo:
ssh –X bluder@192.168.1.67 gimp
Después de este comando nos cargara la aplicación que necesitamos tomar del Servidor, si el puerto del Servidor SSH lo cambiamos, debemos de ejecutar el siguiente comando:
ssh –X –p 2233 Usuario@Direccionip AplicacionGrafica
Ejemplo:
ssh -X -p 2233 bluder@192.168.1.65 gimp
En nuestro ejecutamos el comando normal y nos debe de aparecer la aplicación, en este caso Gimp y nos cargara como lo muestra la imagen:
Esta es la bienvenida que nos da la Aplicación (Gimp):
Después nos podemos dar cuenta de que podemos utilizar la Aplicación como si estuviéramos en el Servidor:
Cambiar el Mensaje de Bienvenida de SSH
Si nos hemos dado cuenta el mensaje que nos da el SSH es el siguiente:
Linux Debian 2.6.26-1-686 #1 SMP Sat Jan 10 18:29:31 UTC 2009 i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Si queremos cambiar este mensaje, debemos de entrar a editar el archivo motd en la ruta /var/run/, con la ayuda del siguiente comando:

gedit /var/run/motd
Y colocar el mensaje que más nos parezca adecuado, guardamos el archivo y listo, así:
Recordemos que debemos de reiniciar el Servidor SSH para que los cambios se apliquen
(# /etc/init.d/ssh restart).

Uso de SSH a través de un proxy
En primer lugar instalamos el paquete proxy-connect:
sudo aptitude install proxy-connect
Modificamos el fichero /etc/ssh/ssh_config para permitir el uso de SSH a través del proxy:
sudo echo 'ProxyCommand /usr/bin/connect-proxy -4 -S miproxy.domaine.com:port %h %p' >> /etc/ssh/ssh_config
Reemplaza "miproxy.domaine.com" y "port" por el nombre de tu proxy y el número de puerto.
Autor original: 
Alberto Alvarez Alonso
Categoría: