Re: ssh / scp sin pass
On Tue, 2003-01-14 at 17:56, Antonio Gutiérrez Mayoral wrote:
> Quería saber si hay alguna forma posible de hacer que cada vez que se
> hace ssh o scp sobre una determinada máquina o rangos de IP's no se
> solicite la contraseña, porque ya esté almacenada por una primera vez o
> en un fichero.
Sí, la hay.
1. Verifica, en la configuración de sshd, que tengas las líneas
RSAAuthentication yes
PubkeyAuthentication yes
Estos son los valores por omisión para Debian, de forma que no
deberías tener que editar nada (en Debian, la configuración de
sshd está en /etc/ssh/sshd_config).
2. En tu cliente, tienes que generar pares de llaves para tu usuario:
ssh-keygen -t rsa
ssh-keygen -t dsa
Consulta ssh-keygen(1) para más detalles. Te recomiendo que protejas
las llaves privadas con un password (ssh-keygen debería preguntarte
por un password).
3. Instala las llaves públicas de tu usuario en tu home en el host al
que te quieres conectar. La manera más sencilla de hacer ésto es:
ssh-copy-id <user>@<host>
Donde <user> es tu nombre de usuario en el host remoto, y <host> es
el nombre o la dirección del host remoto. Consulta ssh-copy-id(1).
4. Si protegiste tus llaves con un password, probablemente querrás usar
el "agente ssh" para que no se te esté preguntando el password cada
vez que uses las llaves:
ssh-add
Este comando lo tienes que ejecutar una sola vez, cuando inicias tu
sesión en la máquina cliente (tu laptop, tu estación de trabajo,
etc). Te pedirá el password de las llaves privadas.
Y ya, eso es todo. Ya deberías poder hacer ssh, ó scp, sin que se te
esté preguntando el password. Si olvidas hacer ssh-add, se te
preguntará por un password, por supuesto --pero el password de tus
llaves privadas, no el password del host remoto. El password del host
remoto ya no se usa, a menos que te conectes con telnet o algo así.
> Sé que es una opción peligrosa, pero trabajo siempre con sesiones sobre
> las mismas máquinas y es muy molesto tener que estar escribiendo
> constantemente las contraseñas, sobre todo si son largas. El shell que
> utilizo es bash.
No es una opción peligrosa, a menos que decidas dejar tus llaves en
claro (e.g., no usar un password para protegerlas). De hecho, si
proteges tus llaves con un password, yo creo que es incluso más seguro
que la operación tradicional, porque para comprometer tu cuenta no sólo
tienen que robarte el password, sino las llaves almacenadas en tu
máquina cliente. E incluso si no las proteges con password, el riesgo
es que la máquina cliente se comprometa. El servidor está igual de
seguro que siempre.
-CR
Reply to: