SSH con un alias de usuario?

10

Esta pregunta no es un duplicado. Léalo antes de marcarlo como tal.

¿Es posible asignar apodos o alias a los usuarios en un servidor Linux y SSH en el servidor usando los apodos? Estoy pensando en algo similar a los alias de varios comandos que se agregan al .bashrco al .bash_aliasesarchivo, por ejemplo:

alias grep='grep --color=auto'

Por ejemplo, si existe un requisito (regla de negocio) para configurar a los usuarios en el servidor con su nombre completo, por ejemplo, en john_smithlugar de solo su nombre ( john) pero queremos un apodo john_smith fruitloopsy queremos que John pueda:

ssh john_smith@ip_address

tanto como:

ssh fruitloops@ip_address

Si es posible, ¿dónde se configuraría la asignación entre un usuario y su apodo? ¿El usuario fruitloopstambién necesitaría existir en el servidor?

Esta pregunta se trata de configurar un alias para un usuario, no para un host .

dw8547
fuente
1
Con un alias de host que podrías hacerssh fruitloop
Takkat
Mi pregunta es sobre la configuración de un alias para un usuario, no para el host. fruitloopsse refiere al usuario john_smith, no a la dirección IP.
dw8547
1
Creo que estas no son las mismas preguntas ... +1 a la pregunta;)
Ravexina
1
Perdón por mi malentendido: se debe configurar un alias de host SSH en el cliente, pero lo que necesita es una solución que se haya configurado en el servidor . Retracté mi voto cercano.
Takkat
1
Creo que esto es posible con algunos trucos de PAM (si está usando PAM). Es posible que pueda encontrar algún código antiguo a lo largo de estas líneas (si lo hago, publicaré como respuesta).
Sumudu Fernando

Respuestas:

14

Cada usuario en Linux tiene un solo nombre y ese es su único nombre. puede crear alias para comandos que no sean para usuarios.

Pero puede crear un segundo usuario con el mismo UID, directorio de inicio y contraseña que le ayudarían.

Ziazis
fuente
Entonces mis /etc/passwdentradas correspondientes a estos usuarios se verían así: john_smith:x:1001:1001:,,,:/home/john_smith:/bin/bashy fruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bash?
dw8547
2
Intenté 3 enfoques diferentes después de agregar usuario john_smithcon UID = 1001. 1) adduser --home /home/john_smith --uid 1001 fruitloops , esto no funcionó ( adduserfalló porque se tomó el ID de usuario) 2) useradd --home /home/john_smith --non-unique --uid 1001 fruitloops , funcionó pero condujo a un comportamiento que no era deseable 3) Finalmente agregué la línea fruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bashdirectamente al /etc/passwdarchivo y esto fue lo más parecido a lo que estaba buscando . SSH I en ip_addresscomo fruitloopsy la tierra en /home/john_smithla llegada.
dw8547
1
Voy a discutir con tu redacción aquí. En su escenario, ha creado un usuario (1001) con dos nombres de inicio de sesión diferentes. No lo ha hecho aquí, pero no hay razón para que los dos nombres no puedan tener directorios de inicio y shells de inicio de sesión diferentes. Inicie sesión como "fruitloops" y cree un archivo. Ahora revise el directorio y verá que john_smith se muestra como el propietario del archivo, porque ese es el primer nombre que se encuentra en / etc / passwd para uid 1001. Podemos discutir si john_smith es el nombre y fruitloops es un alias, o john_smith es el nombre primario y fruitloops secundario, pero eso es semántico.
Monty Harder
2
"puede crear un segundo usuario con el mismo UID, directorio de inicio y contraseña", eso suena como un truco terrible que no se garantiza que funcione en diferentes implementaciones compatibles con POSIX. POSIX requiere que la relación entre los nombres de usuario y las ID de usuario sea bidireccionalmente distinta.
David Foerster
@ dw8547 ¿Puede explicar un poco más sobre el comportamiento indeseable del comando useradd?
Monty Harder
0

No he intentado esto, pero otra opción además de los dos usuarios asignados a un solo UID (que IMO parece peligroso pero esta opción es probablemente igualmente peligrosa) es tener un solo usuario que sirva como un redirector basado en la clave SSH. Así es como suelen funcionar los repositorios de control de origen que usan SSH.

Llamemos al usuario me. Todos usarán este alias.

ssh me@ip_address

Ahora el usuario metiene todas las claves públicas de los usuarios en su ~/.ssh/authorized_keys.

command="sudo -i -u user-mapped-to-key" ssh-rsa key

Deberá hacer que el usuario metenga la capacidad de sudo como los demás usuarios y deberá administrar el mearchivo de claves autorizado.

De todos modos, no he probado esto, pero en teoría algo como esto debería funcionar.

Adam Gent
fuente