Come utilizzare le chiavi SSH e disabilitare l'autenticazione con password


12

Sto provando ad accedere a un Mac da remoto (ho accesso fisico a questo Mac) tramite SSH da un computer client Linux. Il mio obiettivo è accedere a questo Mac dall'esterno della rete. Il port forwarding è impostato sul router. Dal mio computer client sono in grado di utilizzare ssh user@ipl'IP pubblico e sono in grado di accedere al Mac, quindi il port forwarding funziona.

Ora voglio impostare le chiavi SSH. Ho generato le chiavi SSH sul mio computer client, ma prima volevo ottenere il demone SSH sul setup del Mac. Ho modificato /etc/ssh_confige impostato PasswordAuthentication no. Ho riavviato SSH con questi comandi:, sudo launchctl unload /System/Library/LaunchDaemons/ssh.plistquindi sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist. Quando provo di nuovo a SSH dal client, mi chiede ancora la mia password.

Ho dato un'occhiata a questo post e dalla risposta ho aggiunto UsePAM noal file di configurazione e riavviato launchctlnuovamente il servizio . Mi viene ancora richiesta una password.

Ho anche provato la soluzione qui . Mi viene ancora richiesta una password.

Come faccio a impostare my ssh_configin modo che non richieda la password e accetti solo le chiavi SSH? Non sto riavviando il demone correttamente? C'è un altro passo che mi manca?

Risposte:


13

Stavo modificando il file di configurazione sbagliato! Invece di /etc/ssh_config, ho modificato private/etc/sshd_config. Penso che probabilmente avrebbe funzionato anche se avessi modificato /etc/sshd_configsecondo la risposta aggiornata da @GhostL Cognomi, ma non l'ho ancora verificato, quindi non posso dirlo con certezza. Successivamente, ho riavviato il servizio con sudo launchctl stop com.openssh.sshde quindi sudo launchctl start com.openssh.sshdsono stato in grado di ottenere il comportamento desiderato. Ecco la risorsa in cui ho trovato le informazioni pertinenti: /superuser/364304/how-do-i-configure-ssh-on-os-x

Ecco le opzioni di configurazione che ho modificato:

PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no

Successivamente sono stato in grado di generare con successo le chiavi SSH sul mio computer client, ho spostato la chiave pubblica ~/.ssh/authorized_keyssu sul Mac e impostato le autorizzazioni per quel file su 644.

È importante notare che tali autorizzazioni sono per la mia chiave pubblica . Le autorizzazioni della mia chiave privata sono impostate su 600 sul mio computer client. Ciò è molto importante se nella ~/.sshcartella sono presenti sia la chiave pubblica che quella privata e sul sistema sono presenti più utenti. Se le autorizzazioni della chiave privata sono impostate su 644, qualsiasi utente potrebbe leggere la chiave privata e impersonare l'utente. Inoltre, le autorizzazioni per la ~/.sshcartella dovrebbero essere 700.


5
Internamente /etc/sshd_confige /private/etc/sshd_configsono lo stesso file. :)
GhostLCRIP

8

/etc/ssh/ssh_configè il file di configurazione per il client che viene utilizzato se non ne hai uno più specifico nella tua home directory. Quello che vuoi modificare è /etc/ssh/sshd_configquello per il server.

Probabilmente vorrai impostare PermitRootLogin without-password(o no) e PasswordAuthentication nolì.


Aggiornamento: poiché stai eseguendo Yosemite, il file è /etc/sshd_configconforme a questa risposta: https://apple.stackexchange.com/a/167405/11135

Per ulteriori elaborare il motivo per cui viene richiesto ancora quando l'impostazione PasswordAuthentication noin /etc/ssh/ssh_configesso è importante capire che cosa si è configurato. "Quando si effettua una connessione in uscita tramite SSH, non offrire l'autenticazione con password."


Non ho un /etc/ssh/ssh_config, solo un /etc/ssh_config. Sto correndo su Yosemite. Ho provato il PasswordAuthentication noma mi sta ancora chiedendo la password.
Beznez,

Ah, capisco. Non è quello che voglio. Voglio SSH dal mio client Linux al Mac con chiavi e senza password. Cosa devo cambiare per una connessione in entrata ?
Beznez,

/etc/sshd_configPasswordAuthentication no. Dispiace per la confusione. Per favore fatemi sapere come posso rendere più chiara la risposta. :)
GhostLCRIP

Sto ancora assumendo lo stesso comportamento. Mi richiede una password quando ssh dalla macchina Linux al Mac.
Beznez,

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.