ssh es un protocolo para conexión de máquinas de forma segura, en esta página encuentra explicación de cómo emplear a nivel de usuario los servicios ofrecidos por esta herramienta. Incluso los usuarios de windows pueden beneficiarse de ella.
Contents
scp
Se puede copiar archivos de forma remota, es sencillo de usar, una vez que se tiene clara la sintaxis, se diferencia directorio, archivos y usuarios, y se sabe exactamente dónde está la información y dónde se desea colocar. Vea este enlace para aprender a usar scp.
Por favor complete la información referente a scp,
sftp
Una herramienta adicional para facilitar el envío y recepción de archivos, considere usar gftp para tener un cliente gráfico. sftp hereda comandos de ftp, así que si usa ftp, sftp será muy sencillo para usted.
Este es un ejemplo de gftp en acción :
Guía completa para configurar cliente y servidor
shfs
Adicionalmente es posible montar una unidad remota a través de ssh, un excelente howto para configurar. Una vez configurado :
Para montar una unidad, por ejemplo :
shfsmount igotam@www.gfc.edu.co: /home/igor/colegio/
Para desmontarla
- shfsumount /home/igor/colegio/
Con el siguiente comando añadiría a /etc/fstab la misma opción :
echo "igor@www.gfc.edu.co: /home/igor/colegio shfs defaults,user,noauto 0 0" >> /etc/fstab
Que podría montar el sistema de archivos remotos con
- mount /home/igor/colegio
Hay otra opción llamada sshfs, y depende de fuse, al momento de este escrito con etch, se quejaba acerca de la falta de /dev/fuse
sshfs
Usanlo la versión inestable de debian sid, a al fecha 4 dic 2007, tuve problemas con las instrucciones anteriores, ya que el shfs no me quiso compilar en mi labtop, y opte por instalar el sshfs y me ha funcionado bien.
Este aplicativo usa Fuse http://fuse.sourceforge.net/, para instalarlo use el paquete:
- apt-get install sshfs
para conectarse a un directorio, primero cree el directorio en el cual quiere montarlo, ejemplo:
- mkdir /mnt/tempo
Luego conectelo usando el sshfs
sshfs miusuario@miservidor.com.co:/var /mnt/tempo
Si usa tunneling descrito más adelante y quiere conectarse a un puerto determinado hagalo con el siguiente comando:
sshfs miusuario@miservidor.com.co:/var /mnt/tempo -p 10022
Para desmontarlo use fusermount:
- fusermount -u /mnt/tempo
Más información, en ingles:
- man sshfs
tunnel
Un puerto dentro del 22
Para lograr usar el puerto 80 de la máquina 192.25.134.28, asumiendo que hay conexión ssh hacia tal máquina, con el siguiente comando:
ssh -L 10081:localhost:80 jtamara@192.25.134.28
Visitaríamos en localhost:10081, el puerto en cuestión.
Publicar puertos de otras máquinas
Una máquina puede hacer forwarding de puertos hacia otra, por ejemplo, para establecer conexiones seguras entre una máquina en una intranet y la máquina de casa. Este es el caso del servidor de SLEC.
Casa <=> Firewall(200.10.0.10) <=> Máquina-Intranet(192.168.3.50)
Suponga que desde la casa desea conectarse a la Máquina-Intranet, debería contar con una cuenta en el Firewall para que establezca la conexión entre Casa y Máquina-Intranet.
En este ejemplo se va a configuar el puerto 10022 del Firewall para que reenvíe la conexión al puerto 22 de Máquina-Intranet, así, cuando se haga secure shell hacia firewall al puerto 10022, automágicamente se estará conectando al puerto ssh(22) de Máquina-Intranet.
La siguiente es la línea de tunneling que se habilitaría en el Firewall :
- ssh -fNg -L10022:192.168.3.50:22
Posteriormente desde la Casa se haría :
- ssh -p 10022 -l pepito 200.10.0.10
que tendría el efecto de conectarse a Máquina-Intranet como pepito vía ssh.
Hay otra opción para hacer tunneling que solamente exige la conexión entre la máquina decasa y el firewall y que haría el port forwarding de la siguiente forma :
ssh -L 8080:192.168.3.50:443 pepito@200.10.0.10
Así se enviaría el puerto 443 de la máquina 192.168.3.50 a la máquina local al puerto 8080. Cuando se cierre la sesión de ssh se cerrará el port forwarding.
Para mantener la conexión de forma permanente y ahorrarse la escritura de claves, considere el uso de llaves públicas y privadas
Tunnel inverso
Hay proveedores de Internet que dejan a la máquina cautiva tras unas direcciones IP privadas, supondremos que la máquina que está detrás del router se llama cautiva y que disponemos una máquina que puede ser accedida vía SSH en Internet llamada liberadora, se requiere que desde cautiva se establezca el tunel a liberadora por ejemplo de la siguiente forma:
ssh -fNR 3044:localhost:22 super@liberadora
Esta orden indicará que queremos hacer un tunel del puerto 3044 que llegará a cautiva a través de liberadora con el usuario super de liberadora
Esto permitirá que en liberadora hagamos:
ssh -p 3044 enjaulado@localhost
Que indica que entraremos a cautiva como el usuario enjaulado desde liberadora.
Ejemplo para postgresql
Además de hacer tunnel de ssh, se puede hacer tunnel de postgresql o de cualquier otro servicio que use sockets. En la siguiente línea se está haciendo tunneling hacia la Máquina-Intranet en el puerto por defecto de postgresql 5432, a través del puerto 10234.
ssh -fNg -L10234:192.168.3.50:5432 igotam@192.168.3.50
Sería necesario habilitar en los archivos de configuración a 192.168.3.50 para que se pueda conectar, y en este caso, por favor NO emplee trust, porque estará poninedo en grave peligro los datos de la base. Para conectarse a postgres de la máquina-Intranet desde su casa podría usar :
- psql -h 100.10.0.10 -p 10234 -U pepito prueba
que le permitiría al usuario pepito de postgresql conectarse a la base de datos prueba que reside en Máquina-Intranet.
rsync
Rsync puede usar ssh para hacer copia entre equipos remotos, permite además recuperar las copias en el estado en el que iban, por ejemplo, para copiar desde una máquina remota a la presente haciendo uso de rsync de forma recursiva y que se recupere en caso de que falle la transmisión puede emplearse de la siguiente forma:
rsync -avz --progress --partial usuario@tumaqui.na:/directorio/remoto/fuente/ destino/
Bibliografía
- info ssh

