Como la mayoría de los administradores de sistemas, uso openssh todo el tiempo. Tengo alrededor de una docena de claves ssh, me gusta tener una clave ssh diferente para cada host. Sin embargo, esto causa un problema cuando me conecto a un host por primera vez, y todo lo que tengo es una contraseña. Solo quiero conectarme al host usando una contraseña, sin clave ssh en este caso. Sin embargo, el cliente ssh ofrecerá todas las claves públicas en mi ~/.ssh/
(lo sé mirando la salida de ssh -v
). Como tengo tantos, me desconectaré por demasiados errores de autenticación.
¿Hay alguna forma de decirle a mi cliente ssh que no ofrezca todas las claves ssh?
ssh
public-key
private-key
Rory
fuente
fuente
Respuestas:
Este es el comportamiento esperado de acuerdo con la página de manual de
ssh_config
:Básicamente, especificar
IdentityFile
s solo agrega claves a una lista actual que el agente SSH ya presentó al cliente.Intente anular este comportamiento con esto al final de su
.ssh/config
archivo:También puede anular esta configuración en el nivel de host, por ejemplo:
fuente
ssh -o "IdentitiesOnly true" -v -A user@host
cuál es lo que uso para iniciar sesión en una máquina que no tiene ninguna de mis claves, pero quiero ofrecer el reenvío de agente para continuar. (-v
para depuración detallada).yes
(y notrue
)?IdentitiesOnly
puede que no siempre ayude, es posible que deba excluir un host específicamente; ver superuser.com/questions/859661/...Aunque otros han insinuado esto con soluciones basadas en la configuración, probablemente valga la pena señalar que puede hacerlo fácilmente solo una vez en la línea de comandos con:
fuente
Siguiendo la solución de James Sneeringer, es posible que solo desee establecer un ssh_config en la línea de:
Si se conecta con una clave particular a muchas máquinas que no están en un dominio común, considere darles todos los CNAME en su propio DNS. Hago esto con todos los sistemas del cliente.
fuente
Similar a la solución de user23413, puede deshabilitar por completo la autenticación de clave pública para un host particular (o patrón comodín):
fuente
Si señala un archivo de clave en particular con ssh -i / ruta / a / clave, solo lo usará incluso si otros están cargados en el agente, y no se le pedirá la contraseña. También puede editar su ~ / .ssh / config y agregar algo como esto ...
Host foo.example.com
IdentityFile .ssh / id_rsa_foo.example.com
también puedes hacer ...
Host * .example.org
IdentityFile .ssh / id_rsa_example.org
fuente
IdentitiesOnly
solo con esa voluntad.