Configuración del cliente SSH para certificados

Cómo configurar una computadora cliente para usar certificados SSH para la autenticación de computadora anfitriona y cliente.

Autenticación de host:

ssh reconocerá los certificados de cualquier computadora host cuyo certificado esté firmado por una autoridad identificada en el archivo /etc/ssh/ssh_known_hosts.

Para configurar esto necesitas la siguiente línea en /etc/ssh/ssh_config:

GlobalKnownHostsFile /etc/ssh/ssh_known_hosts

Luego, debes agregar una línea como la que se muestra a continuación a /ets/ssh/ssh_known_hosts:

cat <<EOF | sudo tee -a /etc/ssh/ssh_known_hosts
@cert-authority * ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTcMC1gp\
Ey/r0E/nolRkiOH/ppenhnbj1BFHKRi/RdxttVWSHoMg9ilKADdz6nItm2HuEZ04\
tfIIbEs9yH4VdnWbfAbgfkZBHzY4rueXuo7xlnAWx14JMFuCT2WaVRmi6Sf8eUDP\
BB3sGjE2yPWSaQUDp6kMx1V8whES0jiW7CLDOSlU6fW0T6lLgaRZ9h49Rh3jcV3I\
5ZZg1ogD0YNKgjdgnzHuFeGAZCB5fI5L+ndC8KXTKmC7shYN1adSIoWS3XgQiUHm\
ajpwFEIYOBE6/xI8QFU/F44j5EjFvfPq1k9zPEvi0SKV68Rl8JZ0X/SontVRQ/To\
gvYvftDWt32jACdv3vUk+QDpyyym+R7SCOKX/STlT3FDk/yrHMHQBzYO1KKhnVFv\
KzzZs0umsqDSGrYSLialPUJ+ZuXDTSelov+P5s200ZBAPjxYD6YIGiBsPKgHssVQ\
7GUlz1mxgOObQNVQjbrgdGwpdnYpY4YlsogtybI1QIbDtU/fIRPHHeWWBOW+iZ1w\
9/XHnSyP0EFyzk+bYz21lRxJHLBsfWehshM3Mwqs+A3cmwzUyGQCeT8XV+mKe7y1\
VAiqVVQQjhjHCoU+N4XkdM8pUzR0NkC33amlV68e1EDSD0XAtLZCUrJfil18X9/R\
hWkiDVElMOPwmsp3nJ9jU3UQRQ7Yf97V3oLw== pbz@ogopogo.biz_hostca_bzhosts
EOF

La autoridad anterior actualmente autentica los siguientes hosts:

autoridad: pbz@ogopogo.biz (tag bzhosts)

    * mamey.ogopogo.biz
    * repo.ogopogo.biz
    * guanabana.bernatchez.net
    * relay.bernatchez.net
    * relay.ogopogo.biz
    * repo.bernatchez.net

Autenticación del cliente:

Genere un par de claves privada/pública con este comando:

/usr/bin/ssh-keygen -b 4096 -t rsa -C computadora_propósito -f computadora_propósito

Sustituye «computadora» por el nombre del equipo cliente y «propósito» por algo que indique para qué se usará la clave. Algo así:

ssh-keygen -b 4096 -t rsa -C pedrolaptop_usario-remoto -f pedrolaptop_usario-remoto

Envíe un correo electrónico a la autoridad firmante solicitando un certificado firmado. Adjunte la clave pública generada anteriormente al correo.

La autoridad certificadora adjuntará un certificado que le otorga acceso en un correo electrónico de respuesta. Guarde ese certificado en el mismo directorio donde almacena la clave privada.

Cuando cargue la clave privada en su agente SSH, el certificado también se cargará.

Ejemplo:

ssh-add pedrolaptop_usario-remoto

Deberás responder con la contraseña correcta para tu clave y obtendrás algo como lo siguiente:

Enter passphrase for pedrolaptop_usario-remoto:

Identity added: pedrolaptop_usario-remoto (pedrolaptop_usario-remoto)
Certificate added: pedrolaptop_usario-remoto-cert.pub (pedrolaptop_usario-remoto)

ASUNTO:

En Ubuntu, la utilidad ssh-add no carga los archivos de certificado. Esto no ocurre cuando ssh-agent es el agente real, sino cuando el agente es el implementado por gnome-keyring.

La solución es dejar de usar el componente ssh de gnome-keyring.

Dado que el proceso de inicialización inicia un agente ssh real y luego lanza gnome-keyring-ssh.desktop, que bloquea AUTH_SOCKET para tomar el control, volvemos al agente ssh original deshabilitando gnome-keyring-ssh.desktop.

Deshabilita gnome-keyring-ssh.desktop:

cd /etc/xdg/autostart/
sudo emacs gnome-keyring-ssh.desktop

Agregue la siguiente línea al archivo y guárdelo

X-GNOME-Autostart-enabled=false

Luego reinicie la computadora

Publicado el par Pierre Bernatchez dans «SSH». Palabras clave: certificado, securidad, autenticación, cómo