SSH con un alias utente?


10

Questa domanda non è un duplicato. Si prega di leggerlo prima di contrassegnarlo come tale.

È possibile assegnare nickname o alias agli utenti su un server Linux e SSH nel server usando i nickname? Sto pensando a qualcosa di simile agli alias per vari comandi che vengono aggiunti al file .bashrco .bash_aliases, ad esempio:

alias grep='grep --color=auto'

Ad esempio, se esiste un requisito (regola aziendale) per configurare gli utenti sul server con il loro nome completo, ad esempio, john_smithanziché solo il loro nome ( john), ma vogliamo soprannome john_smith fruitloopse vogliamo che John sia in grado di:

ssh john_smith@ip_address

così come:

ssh fruitloops@ip_address

Se è possibile, dove sarebbe impostato il mapping tra un utente e il suo nickname? L'utente fruitloopsdovrebbe anche esistere sul server?

Questa domanda riguarda l'impostazione di un alias per un utente, non un host .


1
Con un alias host che potresti faressh fruitloop
Takkat,

La mia domanda riguarda l'impostazione di un alias per un utente, non per l'host. fruitloopssi riferisce all'utente john_smith, non all'indirizzo IP.
DW8547,

1
Credo che queste non siano le stesse domande ... +1 alla domanda;)
Ravexina,

1
Ci scusiamo per il mio malinteso: un alias host SSH dovrebbe essere impostato sul client, ma ciò di cui hai bisogno è una soluzione che è stata impostata sul server . Ritirato il mio voto ravvicinato.
Takkat,

1
Penso che questo sia possibile con alcuni trucchi PAM (se stai usando PAM). Potrei essere in grado di trovare un vecchio codice lungo queste righe (se lo faccio, posterò come risposta).
Sumudu Fernando,

Risposte:


14

Ogni utente in Linux ha un solo nome e questo è il suo unico nome. puoi creare alias per comandi non per utenti.

Ma puoi creare un secondo utente con lo stesso UID, home directory e password che farebbe al caso tuo.


Quindi le mie /etc/passwdvoci corrispondenti a questi utenti sarebbero simili: john_smith:x:1001:1001:,,,:/home/john_smith:/bin/bashe fruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bash?
DW8547,

2
Ho provato 3 approcci diversi dopo aver aggiunto l'utente john_smithcon UID = 1001. 1) adduser --home /home/john_smith --uid 1001 fruitloops , questo non ha funzionato ( adduserfallito perché è stato utilizzato userid) 2) useradd --home /home/john_smith --non-unique --uid 1001 fruitloops , ha funzionato ma ha portato ad un comportamento non desiderabile 3) Alla fine ho aggiunto la linea fruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bashdirettamente al /etc/passwdfile e questo era il più vicino a quello che stavo dopo . SSH in ip_addressas fruitloopse atterrare /home/john_smithall'arrivo.
DW8547,

1
Ho intenzione di cavillare con le tue parole qui. Nel tuo scenario, hai creato un utente (1001) con due nomi di accesso diversi. Non l'hai fatto qui, ma non c'è motivo per cui i due nomi non possano avere directory home e shell di login diverse. Accedi come "fruitloops" e crea un file. Ora controlla la directory e vedrai che john_smith viene mostrato come proprietario del file, perché è il primo nome trovato in / etc / passwd per uid 1001. Possiamo discutere se john_smith è il nome e fruitloops è un alias o john_smith è il nome principale e secondari di Fruitloops, ma quello è semantico.
Monty Harder,

2
"puoi creare un secondo utente con lo stesso UID, home directory e password" - sembra un terribile hack che non è garantito per funzionare su diverse implementazioni conformi a POSIX. POSIX richiede che la relazione tra nomi utente e ID utente sia distinta in senso bidirezionale.
David Foerster,

@ dw8547 Puoi spiegare qualcosa in più sul comportamento indesiderato del comando useradd?
Monty Harder,

0

Non ho provato questo, ma un'altra opzione oltre ai due utenti mappati su un singolo UID (che IMO sembra pericoloso ma questa opzione è probabilmente ugualmente pericolosa) è quella di avere un singolo utente come redirector basato sulla chiave SSH. Ecco come funzionano normalmente i repository di controllo del codice sorgente che utilizzano SSH.

Consente di chiamare l'utente me. Tutti useranno questo alias.

ssh me@ip_address

Ora l'utente meha tutte le chiavi pubbliche degli utenti nelle loro ~/.ssh/authorized_keys.

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

Dovrai consentire all'utente di eseguire la mesudo come gli altri utenti e dovrai gestire il mefile delle chiavi autorizzato.

Comunque non l'ho provato ma in teoria qualcosa del genere dovrebbe funzionare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.