¿Cómo hacer que ssh inicie sesión como el usuario correcto?

8

Yo uso ssh en una variedad de máquinas, principalmente linux. Las cuentas en estas máquinas varían en el esquema de nombres: si mi nombre es First Last, entonces tengo cuentas: first, flast, last_f, lastf y, a veces, necesito iniciar sesión como root. Para cada máquina que uso, me gustaría que el cliente openssh sepa qué cuenta usar cuando no especifico en la línea de comandos.

Entonces la pregunta es: ¿Cómo hago ssh serverDo The Right Thing cuando no se especifica un nombre de usuario?

bstpierre
fuente

Respuestas:

18

Puede crear un configarchivo en su .sshdirectorio de inicio , que puede especificar un usuario predeterminado, un archivo de identidad, etc. y asignarlo a un alias que puede usar para conectarse.

Por ejemplo, podría poner esto en el ~/.ssh/configarchivo:

Host example
    HostName example.com
    User first_last
    IdentityFile ~/.ssh/example_rsa
    Port 22
    RSAAuthentication yes
    PubkeyAuthentication yes

Host example2
    HostName example2.com
    User last_first
    # other parameters as needed

Luego puede simplemente escribir ssh exampleo ssh example2en la línea de comando para conectarse.

Por lo tanto, puede configurar uno para cada máquina a la que desea conectarse, con el usuario relevante. Luego, solo use los alias para conectarse sin tener que especificar un usuario. También puede usar un patrón para que coincida con varios hosts.

Hay más información y detalles de lo que puede especificar en un archivo de configuración en la página de manual de ssh_config .

Rich Adams
fuente
3
Absolutamente, puede especificar tantos como desee en el mismo archivo .config. Tengo más de 20 en la mía sin problemas. Solo dejo un espacio entre cada Host distinto, que probablemente no sea necesario, pero lo hace más legible.
Rich Adams el
1
¿No debería ser configarchivo? Sin punto al principio?
danadam 03 de
1
@rich intentaba que mostraras otro sitio en tu ejemplo; espero que no le importa que seguir adelante y efectúa el lanzamiento.
charlatán quijote
44
Sangrar todo menos las líneas que contienen "Host foo" ayuda en gran medida a la causa de mantenimiento.
INNAM
1
@CristianCiupitu: Teniendo en cuenta que es una pregunta de Linux, difícilmente llamaría a la página de manual de OpenBSD la oficial. Hay opciones en ssh de Linux (por ejemplo, GSSAPIKeyExchange ) que no están disponibles en la versión BSD.
Dennis
1

Según la respuesta de Rich Adam, descubrí PuTTY donde almacena su configuración.

Todo está almacenado en un árbol de registro, lo encontrará debajo HKEY_CURRENT_USER\Software\SimonTatham(Simon Tatham es el desarrollador de PuTTY).
Allí puede ver cómo se define un host.

guerda
fuente
1

Si desea cambiarlo para CADA sitio:

Edite su ~/.ssh/configpara tener esto:

Host *
    User buck
hopeseekr
fuente