Questo tutorial ti mostrerà come generare e proteggere le chiavi SSH su macOS Sierra (10.12) e macOS High Sierra (10.13). Le chiavi SSH ti consentono di accedere al tuo server senza password. Aumentano la praticità e la sicurezza essendo significativamente più resistenti agli attacchi di forza bruta.
SSH (Secure Shell) è un protocollo usato più spesso per la gestione remota e per il trasferimento di file spesso indicato come sFTP (Secure File Transfer Protocol). Quando si accede a un server remoto come un VPS Vultr, si consiglia di utilizzare SSH con PKE (scambio di chiavi pubbliche) che utilizza una coppia di chiavi in cui la chiave pubblica viene fornita al server e la chiave privata viene archiviata sul computer.
Le chiavi SSH possono essere aggiunte automaticamente ai server durante il processo di installazione aggiungendo le chiavi pubbliche nel pannello di controllo Vultr. Puoi gestire le tue chiavi SSH in questa pagina . È importante ricordare che queste sono solo le tue chiavi pubbliche (generalmente indicate con .pub
), non dovresti mai esporre le tue chiavi private.
Tipi chiave
Esistono diversi tipi di chiave che possono essere selezionati. Usa l' -t
argomento sulla generazione, come ad esempio ssh-keygen -t ed25519
. Il tipo di chiave ED25519, che utilizza una firma a curva ellittica, è più sicuro e più performante di DSA o ECDSA. La maggior parte dei software SSH moderni (come OpenSSH dalla versione 6.5) supporta il tipo di chiave ED25519, ma è ancora possibile trovare software incompatibile, quindi il tipo di chiave predefinito è ancora RSA.
Il tipo di chiave predefinito è RSA a 2048 bit che offre una buona sicurezza e compatibilità. Per una maggiore sicurezza, è possibile scegliere una chiave di dimensioni maggiori utilizzando l' -b
argomento sulla generazione, ad esempio ssh-keygen -b 4096
per creare una coppia di chiavi RSA a 4096 bit.
Generazione chiave
Per generare una chiave SSH, dovrai aprire Terminal.app
trovato in "Applicazioni> Utilità> Terminale".
Per creare una coppia di chiavi RSA a 4096 bit, immettere:
ssh-keygen -b 4096
Quindi vedrai:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/username/.ssh/id_rsa):
Premendo Invio / Invio si salverà la nuova coppia di tasti in questa posizione predefinita, che è consigliata. Avrai quindi la possibilità di creare una passphrase, che crittograferà la chiave in modo che non possa essere utilizzata senza autorizzazione. Si consiglia inoltre di utilizzare una passphrase.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
SHA256:0irBXp+xKwT5e0ZFklbEVkzxu0Bzv9PmvstFD5w6zlQ [email protected]
The key's randomart image is:
+---[RSA 4096]----+
| =o++. |
| + + .. |
| . . + o o |
| .o . .. + + |
| ooo S. . E o|
| . oo+.+ + ++|
| o..o+ + .o=|
| .o o. + ..oo|
| +. o ==|
+----[SHA256]-----+
A questo punto, la tua coppia di chiavi è stata creata e archiviata ~/.ssh/id_rsa
. Per rendere la chiave disponibile per il sistema e memorizzare la passphrase nel portachiavi di sistema, dovremo completare diversi passaggi aggiuntivi. Si noti che ciò è necessario solo se si preferisce non richiedere la frase chiave ogni volta che viene utilizzata.
Aggiungi nuova coppia di chiavi all'agente SSH
Enter ssh-add -K ~/.ssh/id_rsa
. Verrà quindi richiesto il passphrase e verrà visualizzato quanto segue:
Identity added: id_rsa ([email protected])
Se si desidera utilizzare questa chiave SSH per accedere a un server che è già stato creato, è possibile utilizzare lo ssh-copy-id
strumento per memorizzare la chiave pubblica sul server a cui si desidera accedere.
Aggiungi nuova chiave al server remoto
Utilizzando ssh-copy-id
:
# Substitute your server IP
ssh-copy-id -i ~/.ssh/id_rsa [email protected]
La console richiederà la password di accesso poiché il server remoto non è ancora a conoscenza della chiave. Vedrai quanto segue:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
Ora puoi tentare di accedere al server remoto con ssh [email protected]
e dovresti essere connesso senza una richiesta di password.