| Següent revisió | Revisió prèvia |
| linux:ssh:keys [10/02/2016 08:43] – creado mate | linux:ssh:keys [19/03/2021 09:06] (actual) – [authorized_keys] mate |
|---|
| * ''from="xxx.xxx.xxx.xxx" ssh-dss....'' -> restricción por IP | * ''from="xxx.xxx.xxx.xxx" ssh-dss....'' -> restricción por IP |
| * ''no-pty ssh-dss...'' -> evita obtener una shell | * ''no-pty ssh-dss...'' -> evita obtener una shell |
| * se puede saltar ejecutando: ''ssh sistema_remoto 'echo $HOSTNAME' | * se puede saltar ejecutando: ''ssh sistema_remoto 'echo $HOSTNAME'' |
| * ''command="echo 'pues va a ser que no'" ssh-dss...'' -> solo permite ejecutar el comando especificado | * ''command="echo 'pues va a ser que no'" ssh-dss...'' -> solo permite ejecutar el comando especificado |
| * ''no-port-forwarding ssh-dds...'' -> no permite port-forwarding | * ''no-port-forwarding ssh-dds...'' -> no permite port-forwarding |
| * ''permitopen"xxx.xxx.xxx.xxx:xxxx" -> limita el port-forwarding a una determinada IP y puerto | * ''permitopen"xxx.xxx.xxx.xxx:xxxx"'' -> limita el port-forwarding a una determinada IP y puerto |
| * ¿entrar en un sistema que se conecta con otro y que ese usuario solo sirva para eso? | * ¿entrar en un sistema que se conecta con otro y que ese usuario solo sirva para eso? |
| * command="/home/user/comando_autorizado" | * command="/home/user/comando_autorizado" |
| las restricciones separadas por comas y sin espacios | las restricciones separadas por comas y sin espacios |
| |
| == creación y distribución de llaves | == known_hosts |
| * crear llave 2048 bits: | * este fichero contiene las claves púlicas de los servidores a los que nos conectamos por SSH. |
| <code>$ ssh-keygen -b 2048 -f /home/user/.ssh/myKey</code> | * por defecto, el nombre de los servidores se esconde con un hash |
| <code>$ ssh-keygen -t rsa -f /home/user/.ssh/myKey</code> | * para cambiar eso, podemos editar ''/etc/ssh/ssh_config'' y modificar ''HashKnownHosts Yes -> No'' |
| * asegurarnos que el directorio ''~/.ssh'' tiene los permisos 700 | * comandos útiles para tratar con este fichero: |
| * copiar clave pública en sistema remoto (en el directorio .ssh de la home del usuario, añadiendo o creando el fichero __authorized_keys__, cambiando los permisos a 600) | * ''ssh-keygen -R <ip|dominio> -f <known_hosts_file>'' -> solicita la clave pública de ese servidor y la elimina de la lista |
| <code>ssh-copy-id -i /home/user/.ssh/myKey.pub user@sistema.remoto</code> | * ''ssh-keyscan rsa,dsa <dominio>'' -> recupera las claves solicitadas (por pantalla) |
| * esto nos permite entrar en el sistema remoto sin recordar la contraseña de ese usuario en ese sistema. Solo tenemos que recordar la contraseña de nuestra clave privada | * -H -> key en formato HASH ¿? |
| <code>ssh -i<fichero_clave_privada> usuario@sistema.remoto</code> | * -v -> verbose |
| | * ''ssh-keygen -H -F <dominio>'' -> busca y muestra si hay la clave de un host |
| | * -H -> busca |
| | * -F -> en el fichero known_hosts |
| | * <dominio> no es parámetro de -F |
| |