Abilita l'accesso solo ssh-key sul mio Mac per 1 utente


21

Ho un Macbook Air a cui vorrei consentire l'accesso remoto SSH senza password. Ho creato un utente chiamato con il remotepairquale ho effettuato l'accesso e verificato che posso utilizzare il Mac. Ho anche aggiunto questo utente all'elenco utenti consentiti del servizio "Rimuovi accesso" e ho attivato il servizio. Tutto ciò è stato fatto nel pannello di controllo "Condivisione".

Ho ottenuto la chiave pubblica di un altro computer e l'ho aggiunta al file /Users/remotepair/.ssh/authorized_keys. Quando l'altro computer ssh remotepair@<my ip>riceve ancora una richiesta di password.

Come disabilitare questa richiesta di password?


1
Ti consiglio di aggiungere "Autenticazione solo chiave SSH" al titolo della tua domanda - il modo in cui ora legge sembra un normale accesso alla GUI.
NReilingh,

Risposte:


27

Per disabilitare l'autenticazione della password è necessario modificare /etc/sshd_config. In Terminal:

sudo vim /etc/sshd_config

(o sostituisci con il tuo editor preferito)

Cerca la linea:

#ChallengeResponseAuthentication yes

E cambiarlo in:

ChallengeResponseAuthentication no

Cioè, rimuovere #all'inizio e passare yesa no.

Tutti gli accessi SSH successivi ora RICHIEDERANNO di utilizzare una chiave SSH e non richiederanno una password. Assicurati che la tua chiave ssh funzioni prima di farlo se non hai accesso locale! Non è necessario riavviare il demone ssh o altro perché è avviato su richiesta per ogni nuova connessione in entrata. Nota che potresti anche vedere una PasswordAuthenticationlinea, ma per impostazione predefinita è nogià presente.

Se le tue chiavi ssh non funzionano, questo è davvero un problema separato, ma questo risponde alla domanda così come è posta ora :)


Devo anche aggiungere l'utente all'impostazione AllowUser. Posso solo supporre che la configurazione della GUI non abbia modificato anche questa riga di testo.
Jason

7
Nota, nelle versioni successive di Mac OS X (sicuramente in El Capitan), sshd_config è stato spostato in /etc/ssh/.
zelk,

2
Nota, a partire da MacOS Sierra (v10.12.x), l'impostazione predefinita PasswordAuthenticationè cambiata in yes, quindi assicurati di cambiarla in no.
Travis Clarke,

3

Per aggiornare la risposta per macOS Sierra (in particolare 10.12.6), sembra che il file di configurazione sia ora /etc/ssh/sshd_config

2 linee devono essere decommentate + modificate per disabilitare completamente l'autenticazione della password: (Queste sono le linee da 57 a 62, incluso, nel sshd_configfile predefinito )

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

Come accennato in precedenza, è possibile abilitare / disabilitare l'accesso ssh dalla GUI di Preferenze di Sistema e non è necessario riavviare il daemon tra la modifica della configurazione.


1

È necessario verificare le autorizzazioni delle directory interessate: /Users/remotepair/e /Users/remotepair/.ssh, non devono consentire l'accesso in scrittura da parte di "altri" utenti. My .sshha i diritti di accesso solo per il proprietario.

Inoltre, sul sistema remoto, fare un ssh -v remotepair@yoursystemper vedere quali metodi di autorizzazione sono consentiti e tentati. Cerca Authentications that can continue: publickey,password,keyboard-interactive. Forse devi abilitare RSAAuthenticationsul tuo sistema.


1

Su un sistema di test qui, la disabilitazione del prompt SSH ha richiesto l'aggiunta delle seguenti due righe a /etc/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no

I commenti in sshd_configsuggeriscono inoltre di aggiungere la seguente riga:

UsePAM no
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.