OpenSSH

ADMINISTRACIÓN LINUX

ADMINISTRACIÓN LINUX

Criptografía asimétrica

ADMINISTRACIÓN LINUX

Orígen

Destino

Mensaje

clave simétrica

clave

clave

ADMINISTRACIÓN LINUX

Par único

Privada

Pública

clave asimétrica

ADMINISTRACIÓN LINUX

Par único

Privada

Pública

clave asimétrica

Pública

passphrase

ADMINISTRACIÓN LINUX

Orígen

Pública

Privada

Privada

Destino

Pública

Privada

Privada

Mensaje

ADMINISTRACIÓN LINUX

Orígen

Privada

Privada

Destino

Mensaje

ADMINISTRACIÓN LINUX

Orígen

Privada

Privada

Destino

Mensaje

Pública

ADMINISTRACIÓN LINUX

Orígen

Destino

Mensaje

Pública

ADMINISTRACIÓN LINUX

Orígen

Destino

Privada

Privada

Mensaje

Pública

ADMINISTRACIÓN LINUX

Orígen

Destino

Privada

Privada

Mensaje

Pública

Pública

Privada

Privada

Pública

Pública

ADMINISTRACIÓN LINUX

Orígen

Destino

Privada

Privada

Mensaje

Pública

Pública

Diffie-Hellman

ADMINISTRACIÓN LINUX

Un Servicio:
sshd

ADMINISTRACIÓN LINUX

/usr/sbin/sshd -D
systemctl status sshd.service
netstat -ptan
/etc/ssh/
sshd_config
*key
*.pub
man sshd

ADMINISTRACIÓN LINUX

ssh-keygen -l -f ssh_host_rsa_key
ssh-keygen -t rsa -f ssh_host_rsa_key

Validar destino

* borrar las llaves y re-crearlas

* fix de problema al cambio de llaves servidor

ADMINISTRACIÓN LINUX

Validar destino

ssh

sshd

Privada

Privada

Pública

Pública

~/.ssh/known_hosts

/etc/ssh/

ADMINISTRACIÓN LINUX

systemctl stop sshd.service

/usr/sbin/sshd -Dd

Debug de conexión

ADMINISTRACIÓN LINUX

Un Cliente:
ssh

ADMINISTRACIÓN LINUX

# whereis ssh
ssh: /usr/bin/ssh 
     /etc/ssh 
     /usr/share/man/man1/ssh.1.gz
/etc/ssh/
ssh_config
~/.ssh/
config
authorized_keys


known_hosts
*key
*.pub

ADMINISTRACIÓN LINUX

ssh-keygen -t rsa

Validar origen

ssh-copy-id srv02

* proceso manual con srv03

* uso de passphrase

ADMINISTRACIÓN LINUX

Validar origen

Pública

Privada

Privada

Pública

ssh

sshd

Usuario
origen

~/.ssh/

Usuario
destino:

~/.ssh/authorized_keys

ADMINISTRACIÓN LINUX

Perfiles de cliente

* Opciones varias ssh  (-p -u)

* automatizar en ~/.ssh/config

ADMINISTRACIÓN LINUX

ssh no-interactivo (automatización)

* ejecución de comandos

* uso de stdout para procesos locales

* quitar passphrase

ADMINISTRACIÓN LINUX

Asegurar uso de
authorized_keys

ADMINISTRACIÓN LINUX

Los permisos en el servidor (destino) serán los del usuario al que se accedió
 

¿podemos limitar lo que se puede hacer en el destino?

ADMINISTRACIÓN LINUX

authorized_keys

* from=

* command=

* restrict      no-agent-forwarding,no-pty,no-X11-forwarding

ADMINISTRACIÓN LINUX

Otros usos de
ssh

ADMINISTRACIÓN LINUX

scp

scp archivo usuario@server.remoto:

$HOME

ADMINISTRACIÓN LINUX

Proxy socks

ssh -D 8000 usuario@server.remoto

ADMINISTRACIÓN LINUX

Port forwarding (tunel)

ssh -L 8080:localhost:80 usuario@red.server

Puerto
local

Destino
remoto

ADMINISTRACIÓN LINUX

Port forwarding (tunel)

ssh -L 8080:green.server:80 usuario@red.server

Puerto
local

Destino
remoto

ADMINISTRACIÓN LINUX

Reverse port forwarding (tunel)

ssh -R 2222:localhost:22 usuario@green.server

Puerto
en remoto

Destino
local

ADMINISTRACIÓN LINUX

sshfs

sshfs  usuario@server.remoto:  /mnt

ADMINISTRACIÓN LINUX

sshuttle

sudo  sshuttle  --dns  -r  usuario@server.remoto  0.0.0.0/0

ADMINISTRACIÓN LINUX

Otras herramientas con
OpenSSH

  • sftp - protocolo ftp sobre SSH
  • rsync - sincronizar carpetas/archivos unidireccional
  • unison - sincronizar carpetas/archivos bidireccional
  • lsyncd - sincronizacion carpetas/archivos por cambios
  • mosh - shell remoto mobile

Sobre esta presentación

Atribución 4.0 Internacional (CC BY 4.0)

https://creativecommons.org/licenses/by/4.0/deed.es

ADMINISTRACIÓN LINUX

OpenSSH

By Rodolfo Pilas

OpenSSH

  • 1,170