Vie. May 3rd, 2024

Conexion inversa SSH.
Para hacer SSH a una maquina que esta detras de un firewall o en la que no podemos redirigir puertos.

Ejemplo: Pc del trabajo (tras firewall):

ssh -R 2001:localhost:22 usuario@PcCasa

hace una conexion inversa SSH en el puerto 2001 y espera a que el otro pc se conecte a ella desde ese puerto

Pc de Casa:
ssh usuario@localhost -p 2001


Si queremos que reconecte si se pierde la conexion:
sudo apt-get install autossh
autossh -R 2001:localhost:22 usuario@PcCasa


Problema, cada vez que el PcTrabajo se conecta a PcCasa pide contraseña.
Solucion, activar clave publica.

 Acceso por clave publica a un servidor ssh
1.- Generamos las claves pública y privada:

usuario@PcTrabajo:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pepe/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/usuario/.ssh/id_rsa
Your public key has been saved in /home/usuario/.ssh/id_rsa.pub.
The key fingerprint is:
03:b2:04:d7:d6:8d:96:b5:e5:82:4a:68:69:95:8d:d9 usuario@PcTrabajo
The key’s randomart image is:
+–[ RSA 2048]—-+
|  . …B =. .    |
|   o +* E..+     |
|    B.o.. o .    |
|   + + o   .     |
|    . . S        |
|         .       |
|                 |
|                 |
|                 |
+—————–+
2.- Copio la clave pública en el servidor

usuario@PcTrabajo:~$ scp .ssh/id_rsa.pub usuario@PcCasa:/home/usuario/.ssh
The authenticity of host ‘172.20.202.112 (172.20.202.112)’ can’t be established.
ECDSA key fingerprint is 2b:11:89:89:84:03:a4:56:1c:15:cb:73:bd:cd:b6:67.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘172.20.202.112’ (ECDSA) to the list of known hosts.
pepe@172.20.202.112’s password:
id_rsa                                        100% 1766     1.7KB/s   00:00

3.- Me conecto al servidor por ssh

usuario@PcTrabajo:~$ ssh usuario@PcCasa
usuario@PcCasa’s password:


4.- Añado la clave pública al fichero authorized_keys,doy permiso 600 al fichero,y permiso 400 al fichero de claves

usuario@PcCasa:~/.ssh$ cat id_rsa.pub >> authorized_keys
usuario@PcCasa:~/.ssh$ chmod 600 authorized_keys
usuario@PcCasa:~/.ssh$ chmod 400 id_rsa.pub


5.- Activo en /etc/ssh/ssh_config el parámetro

ForwardAgent yes (quitarle el asterisco inicial)

6.- Lanzo el agente

usuario@PcCasa:~$ eval `ssh-agent` (ojo, comillas inclinadas tecla abrir corchete)
SSH_AUTH_SOCK=/tmp/ssh-aoAREl1818/agent.1818; export SSH_AUTH_SOCK;
SSH_AGENT_PID=1819; export SSH_AGENT_PID;
echo Agent pid 1819;

7.- Añado la clave privada a depósito de claves

usuario@PcCasa:~$ ssh-add .ssh/publickeypctrabajo.pub
Enter passphrase for .ssh/publickeypctrabajo.pub:
Identity added: .ssh/id_rsa (.ssh/id_rsa)

8.- Me desconecto de PcCasa y vuelvo a conectar para probar:

Deberia entrar sin pedir clave

usuario@PcTrabajo:~$  ssh usuario@PcCasa
Warning: No xauth data; using fake authentication data for X11 forwarding.
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-32-generic-pae i686)

 * Documentation:  https://help.ubuntu.com/

Last login: Tue Oct 30 10:32:27 2012 from a202p00.local
usuario@PcCasa:~$

Por admin