Come posso rendere un utente in grado di accedere con i tasti SSH ma non con una password?


17

Vorrei creare un utente e non ho password. Come in non è possibile accedere con una password. Voglio aggiungere le chiavi alle sue authorized_keys usando root. Questo è per il mio sistema di backup automatizzato.

Risposte:


26

L'uso di passwd -dè chiaramente sbagliato , almeno su Fedora , su qualsiasi distribuzione Linux basata su shadow-utils. Se rimuovi la password con passwd -d, significa che chiunque può accedere a quell'utente (su console o grafico) senza fornire password.

Per bloccare gli accessi con autenticazione con password, esegui , che blocca l'account rendendolo disponibile solo all'utente root. Il blocco viene eseguito trasformando la password crittografata in una stringa non valida (prefissando la stringa crittografata con un!).passwd -l username

Qualsiasi tentativo di accesso, locale o remoto, comporterà una "password errata" , mentre l'accesso a chiave pubblica continuerà a funzionare. L'account può quindi essere sbloccato con .passwd -u username

Se desideri bloccare completamente un account senza eliminarlo, modifica /etc/passwde imposta /sbin/nologino /bin/falsenell'ultimo campo. Ciò comporterà "Questo account non è attualmente disponibile." per qualsiasi tentativo di accesso.

Fare riferimento alla pagina man passwd (1).


@guido: rvs non riceverà una notifica della tua risposta. Per questo dovresti aggiungere un commento alla sua risposta (l'ho fatto). Nota che i lettori possono leggere la tua risposta prima della sua, dovresti scrivere le risposte che rispondono direttamente alla domanda. Ben fatto per averlo sottolineato! Si applica alla maggior parte delle distribuzioni Linux (quelle che utilizzano le utility shadow di Linux).
Gilles 'SO- smetti di essere malvagio' il

@Gilles: scusa sono nuovo di StackExchange; l'ho sottolineato solo un po 'perché non era come suggerire agli utenti di configurare account senza password ed è stato accettato e contrassegnato come utile ...
guido,

@guido: non preoccuparti, stavo solo spiegando come rendere più efficace il tuo avviso. In effetti, in casi così estremi in cui una risposta è pericolosamente sbagliata, sarebbe opportuno suggerire una modifica aggiungendo un avviso o una correzione (si spera che non si verifichino queste situazioni troppo spesso sul sito).
Gilles 'SO- smetti di essere malvagio' il

@guido: In realtà, su Debian Squeeze (non so di Lenny o Etch) che risponde FUNZIONA. Non consente a nessuno che non sia root di accedere, consente di autorizzare le chiavi ma non è meno password, non accetta solo password. Mi aspettavo che tu potessi "cancellare la password" e che avrebbe funzionato in questo modo. Ma ha fatto esattamente quello che volevo ed esattamente quello che fa questa risposta ed è stata l'unica risposta, quindi l'ho accettata. Questa risposta ha più senso e la accetterò perché sono disposto a scommettere su altre distro che permettono a chiunque di accedere a bc senza password a differenza di debian. Comunque buona risposta.

1
@ acidzombie24, @mattdn: avrebbero potuto rimuovere nullok da pam.d / password-auth se debian utilizza pam (penso di sì, ma non sono un esperto debian). Tuttavia, manw passwd (1) afferma chiaramente che -d argomento è quello di creare account senza password, quindi qualsiasi speculazione specifica sulla distro qui è secondaria, poiché la domanda era molto generale.
guido,

2

Non stai chiedendo specificamente al demone SSH, di non accettare l'autenticazione basata su password ma l'autenticazione chiave / passphrase?

Cerca le modifiche a sshd_config.

Impostato

PasswordAuthentication No
PreferredAuthentications publickey,hostbased,keyboard-interactive
Protocol 2,1

Cerca altri parametri di configurazione su man ssh_config


0

Basta non impostare la password per l'utente. Se è già presente una password, rimuoverla utilizzando passwd -l <username>.

Ma sarebbe ancora possibile accedere come questo utente - usando authorized_keys o tramite su o sudo da un account privilegiato.


1
Come sottolineato da Guido , passwd -drende l'account senza password, come in, è possibile accedere senza dover digitare una password. Utilizzare passwd -lper bloccare l'account (pensarlo come una password impossibile da digitare).
Gilles 'SO- smetti di essere malvagio' il

Ho aggiunto un avviso al tuo post, perché è pericoloso così com'è. Lascio a te decidere se correggere la tua risposta, o eliminare la tua risposta (se ritieni che quella di Guido sia sufficiente) o confutare l'avvertimento.
Gilles 'SO- smetti di essere malvagio' il

Perché oh perché la gente accetta la risposta che non funziona nemmeno?
mathepic,

@mathepic: funziona su debian. Esattamente come ho chiesto

sei sicuro che un utente non privilegiato non possa farlo suall'utente?
Mattdm,
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.