L'autenticazione con chiave pubblica consente di accedere a un server tramite SSH senza password. Ecco due metodi per copiare la chiave ssh pubblica sul server.
Credo che tu capisca il concetto di base SSH. Il tuo server Linux ha ssh abilitato. Hai generato chiavi ssh sul tuo personal computer. Ora vuoi caricare la tua chiave pubblica sulle chiavi autorizzate del server in modo da potervi accedere senza dover digitare continuamente la password del tuo account.
Questo breve tutorial mostra due metodi per aggiungere una chiave SSH pubblica al server.
Requisiti
Prima di vederlo, chiariamo cosa dovresti già avere:
- Il tuo server di destinazione dovrebbe avere ssh abilitato
- Dovresti aver generato chiavi ssh pubbliche e private (basta usare il comando ssh-keygen -t rsa )
- Dovresti avere un account utente e una password sul server. Anche l'account root andrà bene.
- Dovresti conoscere l'indirizzo IP del server
Ora che ti sei accertato dei quattro requisiti precedenti, vediamo come utilizzare l'autenticazione a chiave pubblica.
L'autenticazione è per base di utenti, quindi la chiave pubblica va nella casa dell'utente previsto.
Metodo 1:copia automaticamente la chiave ssh sul server
Il primo metodo è dove l'utente finale copia la chiave pubblica del proprio personal computer nell'elenco delle chiavi autorizzate sul server remoto.
Qui, presumo che tu sia stato in grado di accedere al server remoto usando ssh [email protected]_of_server. Ti chiede la password del tuo account e tu entri nel server.
Se aggiungi la tua chiave pubblica al server, dovresti essere in grado di accedere senza digitare la password tutto il tempo.
OpenSSH fornisce un pratico strumento chiamato ssh-copy-id per copiare le chiavi pubbliche ssh su sistemi remoti. Crea anche le directory ei file richiesti.
Come accennato in precedenza, dovresti conoscere il nome utente e la password del server a cui desideri accedere tramite l'autenticazione con chiave pubblica.
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]_ADDRESS_OF_THE_SERVER
Quando richiesto, inserisci la password per il tuo account utente sul server remoto. La tua chiave pubblica dovrebbe essere copiata automaticamente nella cartella appropriata sul server remoto.
Ho usato ~/.ssh/id_rsa.pub perché quella è la posizione predefinita per la chiave ssh pubblica. Se lo hai in un'altra posizione, dovresti usarlo nel comando sopra.
Metodo 2:copia manualmente la chiave ssh pubblica sul server
Il primo metodo prevedeva l'azione sul lato utente. Diciamo che sei l'amministratore di sistema e il tuo server non consente l'accesso SSH tramite password. L'unico modo per accedere al server è utilizzare l'autenticazione a chiave pubblica SSH.
In tal caso, puoi chiedere all'utente finale di fornire la sua chiave pubblica. Ora quello che puoi fare è creare la directory .ssh/authorized_keys e quindi copiare la chiave pubblica qui.
Lascia che ti mostri i passaggi.
Passaggio 1:ottieni la chiave pubblica
Chiedi all'utente finale di fornire la chiave pubblica digitando il seguente comando:
cat ~/.ssh/id_rsa.pub
Mostrerà una lunga stringa casuale che inizia con ssh-rsa:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP [email protected]
Puoi ricevere questo testo tramite e-mail o strumenti di messaggistica. Normalmente, non dovrebbe essere un problema.
Passaggio 2:crea la directory ssh nella home directory dell'utente (come sysadmin )
Tieni presente che devi creare queste nuove directory e file nella home directory dell'utente finale, non nella tua (root/sysadmin).
mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys
Ora apri questo file /home/user_name/.ssh/authorized_keys con un editor di testo come Vim e aggiungi la chiave pubblica dell'utente qui:
vim /home/user_name/.ssh/authorized_keys
Salva e chiudi il file. È quasi pronto.
Passaggio 3:imposta l'autorizzazione appropriata per il file
Avere un'autorizzazione file appropriata sul file ssh è molto importante, altrimenti vedrai errori come Permesso negato (chiave pubblica).
Innanzitutto, assicurati di impostare le autorizzazioni file corrette:
chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys
Hai creato quei file con account root o amministratore per qualche altro utente. Devi modificare la proprietà dell'utente:
chown -R username:username /home/username/.ssh
Ora che è fatto, puoi chiedere all'utente finale di accedere al server.
Fammi sapere se riscontri problemi o se hai suggerimenti su questo argomento.