SSH - Cómo incluir "-t command" en el archivo ~ / .ssh / config

13

Utilizo el ~/.ssh/configarchivo para poder ingresar fácilmente ssh myservery proporcionará el nombre de usuario, puerto, nombre de host, archivo de identidad, etc.

Sin embargo, para muchos servidores, lo primero que hago es ingresar su -para iniciar sesión como root. Puedo hacer todo esto en un comando en la línea de comandos, así: ssh myserver -t su -. ¿Hay algo que pueda agregar a mi ~/.ssh/configarchivo que lo haga por mí? Quiero poder hacer ssh myserver-rooty hará lo mismo que ssh myserver -t su -.

Lo sé PermitRootLogin, eso está apagado para este servidor, y soy reacio a encenderlo. Prefiero ver si hay una manera de hacer esto usando ssh en el lado del cliente.

Rory
fuente

Respuestas:

10

Creo que abordaría esto desde la otra dirección: use 'command =' en la entrada de clave pública en su archivo ~ / .ssh / Authorised_keys en el servidor remoto, para ejecutar su comando "su -".

Luego, solo use / haga referencia a la clave privada en su archivo ~ / .ssh / config (opción IdentityFile) para cada host / alias ("myserver-root") que desee que funcione de esta manera.

Las opciones disponibles en Authorized_keys (5) están documentadas en sshd (8).

jrg
fuente
Sí, eso hace exactamente lo que quiero. :) Tengo control total sobre el archivo ~ / .ssh / Authorised_key en el servidor y no tengo problemas para cambiarlo.
Rory el
3

¿Por qué no agregar un script a un directorio en su ruta (o un alias para él) llamado rssh como:

#!/bin/bash
ssh $1 -t 'su -'

Entonces es solo:

rssh myServer
Kyle Brandt
fuente
1

No encontré ninguna opción de configuración para la asignación de pseudo-tty en la fuente OpenSSH.

Pero puedo dar un consejo sobre PermitRootLogin, configúrelo en:

PermitRootLogin without-password

Y permita solo inicios de sesión raíz con ssh-keys.

rkthkr
fuente
1

¿Qué tal agregar algo como esto en ~ / .bashrc en el lado del servidor?

if [ "$SSH_TTY" != "" ]; then su -; logout; fi
Shawn Chin
fuente
1

La mejor respuesta es probablemente una combinación de rkthkr y jrg . Use PermitRootLoginpara requerir una clave, luego solo coloque la clave con la commandpalabra clave en el archivo root_keys autorizado de la raíz.

mwalling
fuente