Cómo configurar el cliente ssh para usar claves privadas automáticamente

10

Siempre estoy ejecutando sshel -iparámetro y es una molestia escribir siempre la clave correcta para cualquier host al que me conecte.

¿Hay un archivo de configuración o algo (en Mac) para definir qué clave privada usar al conectarse a un host en particular?

Leopd
fuente

Respuestas:

12

Sí, quieres crear un ~/.ssh/configarchivo. Eso le permite definir un nombre de acceso directo para un host, el nombre de usuario con el que desea conectarse y qué tecla usar. Aquí hay parte de la mía, con nombres de host ofuscados:

Pestañas de host
     HostName tabs.com
     Usuario yo
     IdentityFile ~ / .ssh / new_rsa

Host scm.company.com
     Gorra de usuario
     IdentityFile ~ / .ssh / git_rsa

Organizar la puesta en escena del proyecto
     HostName 50.56.101.167
     Usuario yo
     IdentityFile ~ / .ssh / new_rsa

Con esto puedo decir, ssh tabsy conectarme al host tabs.com como usuario me, con clave new_rsa, como si lo hubiera usado ssh [email protected] -i ~/.ssh/new_rsa.

pjmorse
fuente
También es una buena manera de hacerlo si no quieres usarlo ssh-agentpor cualquier razón.
voretaq7
No sabía que eso fuera posible. +1
Safado
2

Los clientes SSH generalmente usarán ~/.ssh/identity(ssh v1) o uno de ~/.ssh/id_rsao ~/.ssh/id_dsa(v2) como la clave privada predeterminada. Puede cambiar esto en ~/.ssh/config(el IdentityFileparámetro: la -iopción de SSH realmente anula esto. Consulte man ssh_configpara más detalles).

Si tiene varias claves privadas para usar, ssh-agentprobablemente sea una mejor opción.
Ver man ssh-agentpara más detalles.

voretaq7
fuente
+1 para describir los valores predeterminados y citar la página de manual.
pjmorse
0

Si usa diferentes claves para diferentes servidores, no creo que exista.

Si usa una sola clave para todos los servidores, simplemente guárdela como ~/.ssh/id_rsa, se usará automáticamente.

Hubert Kario
fuente