In Impostazioni di Sistema
- Apri Impostazioni di Sistema, Generali, Condivisione. Potrebbe servire scorrere in basso.
- Clicca il pulsante info accanto a Login remoto.
- Attiva Login remoto.
- Sotto Consenti accesso a, scegli Tutti gli utenti oppure Solo questi utenti. Meglio l'elenco ristretto.
- Annota il comando mostrato sotto la voce che indica il Login remoto attivo. È quello che scrivi sull'altro computer.
L'interruttore Accesso completo al disco
Lo stesso pannello ha l'opzione "Consenti l'accesso completo al disco per gli utenti remoti". Lasciala disattivata a meno che ti serva. Senza, una sessione remota può ricevere Operation not permitted nelle cartelle che macOS protegge, anche se ne sei il proprietario. Quel messaggio dipende da questa impostazione, non dai tuoi permessi Unix.
Da Terminale
sudo systemsetup -setremotelogin on
Secondo man systemsetup servono i diritti di amministratore e l'Accesso completo al disco. Senza il secondo, si ferma con questo messaggio:
setremotelogin: Turning Remote Login on or off requires Full Disk Access privileges.
Per risolvere, aggiungi la tua app di terminale in Impostazioni di Sistema, Privacy e sicurezza, Accesso completo al disco, e riaprila. Oppure usa Impostazioni di Sistema per questa sola modifica, così il tuo terminale non riceve quel permesso così ampio.
Per controllare lo stato attuale:
sudo systemsetup -getremotelogin
Senza sudo risponde You need administrator access to run this tool... exiting!. Fai attenzione a -setremotelogin off via SSH: la man page avverte che poi serve l'accesso locale per riattivarlo.
Collegarsi da un altro computer
ssh user@203.0.113.10
Usa il nome breve dell'account, quello che whoami stampa sul Mac, e la password di login di quell'account. Nella stessa rete funziona anche il nome che finisce in .local mostrato in Condivisione.
Un Mac in stop non risponde. Se la connessione va in timeout, riattiva il Mac e riprova, oppure rivedi le sue impostazioni di stop.
Cosa è diverso da Linux
- La porta. launchd tiene il socket in ascolto, definito in
/System/Library/LaunchDaemons/ssh.plist, quindiPortinsshd_confignon decide dove ascolta. - L'elenco degli utenti. L'elenco "Solo questi utenti" è il gruppo
com.apple.access_ssh. Un utente che non c'è viene rifiutato anche con la password giusta. - La configurazione. Il file è
/etc/ssh/sshd_config, con le impostazioni di macOS in/etc/ssh/sshd_config.d/100-macos.conf.
Usa una chiave
Dall'altro computer, genera una chiave e installala con ssh-copy-id user@203.0.113.10. Poi puoi disattivare l'accesso con password. Per raggiungere il Mac da fuori della tua rete senza aprire una porta sul router, vedi SSH senza IP pubblico.
Chiavi e password di ogni macchina possono stare in un gestore di chiavi SSH con vault cifrato invece che in file sparsi.
Domande
Attivare il Login remoto espone il mio Mac a internet?
Solo se qualcosa inoltra la porta 22 verso di lui, come un inoltro di porta sul router. In una normale rete domestica o d'ufficio lo raggiungono solo i dispositivi di quella rete. Usa comunque una password robusta o una chiave.
Come entro in SSH nel Mac da un iPhone?
Attiva Login remoto, poi apri un'app SSH sull'iPhone e collegati al nome .local o all'indirizzo del Mac con utente e password del Mac. I due dispositivi devono stare sulla stessa rete, o sulla stessa VPN quando sei fuori.
Come disattivo SSH sul Mac?
Spegni Login remoto in Impostazioni di Sistema, Generali, Condivisione. Fallo davanti al Mac: per riattivarlo serve l'accesso locale.