GNU/Linux >> Linux Esercitazione >  >> Linux

Connettiti a un server utilizzando SSH su Linux o Mac OS X

Questo articolo fornisce i passaggi per la connessione a un server cloud da un computer che esegue Linux® o MacOS® X utilizzando Secure Shell (SSH). Viene inoltre illustrata la generazione di una chiave SSH e l'aggiunta di una chiave pubblica al server.

Introduzione

SSH è un protocollo attraverso il quale puoi accedere al tuo server cloud e ai comandi runshell. Puoi utilizzare le chiavi SSH per identificare i computer affidabili senza bisogno di password e per interagire con i tuoi server.

SSH è crittografato con Secure Sockets Layer (SSL), che rende difficile l'intercettazione e la lettura di queste comunicazioni.

Nota: Molti dei comandi in questo articolo devono essere eseguiti nel computer locale. I comandi predefiniti elencati si riferiscono alla riga di comando di Linux o al terminale MacOS X. Per effettuare connessioni SSH da Windows®, puoi utilizzare un client simile al programma gratuito PuTTY. Per generare chiavi, puoi utilizzare un programma correlato, PuTTYGen.

Accedi

Utilizzando l'indirizzo IP (Internet Protocol) e la password per il tuo server cloud, accedi eseguendo il seguente ssh comando con username@ipaddress come argomento:

ssh [email protected]

Il sistema ti chiede di inserire la password per l'account a cui ti stai riconnettendo.

Identificazione host remoto

Se hai ricostruito il tuo server cloud, potresti ricevere il seguente messaggio:

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

Una delle funzionalità di sicurezza di SSH è che quando si accede a un cloud server, l'host remoto ha la propria chiave che lo identifica. Quando tenti di connetterti, il tuo client SSH controlla la chiave del server rispetto a tutte le chiavi che ha salvato da connessioni precedenti a quell'indirizzo IP. Dopo aver ricostruito un server cloud, la chiave dell'host remoto cambia, quindi il tuo computer ti avvisa di possibili attività sospette.

Per garantire la sicurezza del tuo server, puoi utilizzare la console web nel pannello di controllo del cloud per verificare la nuova chiave del tuo server. Se sei sicuro di non essere oggetto di spoofing, puoi saltare quel passaggio ed eliminare il record del vecchio SSH chiave host come segue:

Sul tuo locale computer, modifica l'SSH known_hosts archivia e rimuovi le righe che iniziano con l'indirizzo IP del tuo server cloud.

Nota: Usa l'editor di tua scelta, come nano su Debian o il sistema operativo Ubuntu o vi su server RPM o CENTOS. Per semplicità, questo articolo usa solo nano . Se preferisci usare vi ,sostituisci vi per nano nei comandi di modifica. Per ulteriori informazioni sull'utilizzo di nano , vedi/support/how-to/modify-your-hosts-file/.

nano ~/.ssh/known_hosts

Se non utilizzi Linux o MacOS X sul tuo computer locale, l'ubicazione degli host_noti il file potrebbe differire. Fare riferimento al proprio sistema operativo per informazioni sulla posizione del file. PuTTY su Windows ti dà la possibilità di sostituire la chiave host salvata.

Genera una nuova coppia di chiavi SSH

Puoi proteggere l'accesso SSH al tuo server cloud dagli attacchi con password di forza bruta utilizzando una coppia di chiavi pubblica-privata. Una chiave pubblica viene inserita nel server e una chiave privata corrispondente viene inserita nel computer locale. Se configuri SSH sul tuo server per accettare solo connessioni tramite chiavi, allora nessuno può accedere usando solo una password. I client di connessione sono necessari per utilizzare una chiave privata con una chiave pubblica registrata sul server. Per ulteriori informazioni sulla sicurezza, consulta le best practice per la sicurezza dei server Linux.

Utilizzare i seguenti passaggi per generare una coppia di chiavi SSH:

  1. Esegui il comando seguente utilizzando il tuo indirizzo email come etichetta. Sostituisci il tuo indirizzo email con [email protected] nel comando.

    ssh-keygen -t rsa -C "[email protected]"
    

    Un messaggio indica che è in corso la generazione della coppia di chiavi RSA pubblica-privata.

    Al prompt, premi Invio per utilizzare la posizione predefinita o immettere un file in cui salvare la chiave e premere Invio .

  2. Se desideri la sicurezza aggiuntiva di una password per la coppia di chiavi, inserisci una passphrase e premi Invio . Se non desideri utilizzare una password con la coppia di chiavi, premi Invio per continuare senza impostarne uno.

    La tua coppia di chiavi viene generata e l'output è simile al seguente esempio:

    Your identification has been saved in /LocalFileLocation/id_rsa.
    Your public key has been saved in /LocalFileLocation/id_rsa.pub.
    The key fingerprint is: 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected]
    
  3. Facoltativamente, aggiungi la tua nuova chiave all'ssh-agent locale per consentire a SSH di trovare la tua chiave senza la necessità di specificarne la posizione ogni volta che ti connetti:

    ssh-add ~/.ssh/id_rsa
    

    Puoi utilizzare una scorciatoia di configurazione SSH invece di ssh-agent file seguendo le istruzioni nella Configurazione scorciatoia più avanti in questo articolo.

Aggiungi la chiave pubblica al tuo account cloud

Per semplificare l'aggiunta della tua chiave ai nuovi server cloud che crei, carica la chiave pubblica sul tuo account cloud seguendo questi passaggi:

  1. Accedi al pannello di controllo del cloud.

  2. Nella barra di navigazione in alto, fai clic su Seleziona un prodotto> Rackspace Cloud .

  3. Seleziona Server> Chiavi SSH .

  4. Fai clic su Aggiungi chiave pubblica .

  5. Inserisci un nome chiave, ad esempio Laptop da lavoro , per ricordarti a quale computer è destinata questa chiave.

  6. Seleziona la regione per la quale desideri memorizzare la chiave pubblica. Per memorizzare la chiave in più regioni, ripetere questi passaggi per ciascuna regione. La chiave deve risiedere nella stessa regione del server.

  7. Incolla il contenuto di id_rsa.pub file che hai creato nella Chiave pubblica campo. Puoi ottenere il contenuto del file aprendo il file in un editor di testo o eseguendo il comando seguente:

    cat ~/.ssh/id_rsa.pub
    
  8. Fai clic su Aggiungi chiave pubblica .

Se vuoi aggiungere la chiave manualmente, invece di usare il Pannello di controllo, rivedi le migliori pratiche di sicurezza del server Linux e usa il comando seguente:

 ssh-copy-id -i ~/.ssh/id_rsa.pub {username}@{remotePublicIPAddress}

Crea un nuovo server utilizzando una chiave memorizzata

Quando crei un nuovo server cloud, puoi aggiungere una chiave archiviata al nuovo server.

  1. In Crea server pagina, espandi le Opzioni avanzate sezione.

  2. Dalla Chiave SSH menu, seleziona la tua chiave dall'elenco.

  3. Se non vedi una chiave memorizzata nell'elenco, puoi eseguire una delle seguenti azioni:

    • Cambia la regione per il nuovo server nella regione in cui hai memorizzato la chiave SSH.
    • Ripeti i passaggi nella sezione precedente, Aggiungi la chiave pubblica al tuo account cloud ,per aggiungere la chiave alla regione in cui vuoi creare il nuovo server.

Aggiungi la chiave a un server esistente

Non puoi utilizzare il Cloud Control Panel per aggiungere una chiave pubblica a un server esistente. Segui questi passaggi per aggiungere la chiave manualmente:

  1. Sul tuo server cloud, crea una directory denominata .ssh nella cartella home dell'utente a cui ti connetti tramite SSH.

    mkdir -p ~/.ssh
    
  2. Crea o modifica le chiavi_autorizzate file e aggiungi la tua chiave pubblica all'elenco delle chiavi autorizzate utilizzando il seguente comando:

    nano ~/.ssh/authorized_keys
    

    Una chiave è tutta su una riga, quindi assicurati che la chiave non sia interrotta da interruzioni di riga. Puoi avere più chiavi nelle chiavi_autorizzate file, con una chiave per riga.

  3. Impostare le autorizzazioni corrette sulla chiave utilizzando i seguenti comandi:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  4. Se hai problemi e devi risolvere i problemi di autorizzazione, esegui il comando seguente:

    restorecon -R -v /root/.ssh
    

Dopo aver aggiunto la chiave pubblica a authorized_keys , puoi effettuare una connessione SSH utilizzando la tua coppia di chiavi invece della password dell'account.

Configurazione scorciatoia

Usa le seguenti istruzioni per impostare una scorciatoia di connessione creando un ~/.ssh/config file sul tuo computer locale e aggiungendo il tuo server e i dettagli chiave ad esso.

  1. Usando un editor di testo, aggiungi il testo seguente a ~/.ssh/config file, modificando i valori in modo che corrispondano alle informazioni del tuo server:

    Host shortcutName
    HostName serverAddressOrIPAddress
    User remoteUsername
    IdentityFile /path/to/appropriate/ssh/rsa/private/key
    

    Ciascuna delle seguenti voci descrive una caratteristica del server:

    • Ospite: Un nome di scelta rapida che utilizzi per indicare a SSH di utilizzare questa connessione.
    • Nome host: L'indirizzo del server a cui ti connetti.
    • Utente: Il nome dell'account utente a cui connettersi sul server.
    • File di identità: La posizione del file della chiave privata (id_rsa).
  2. Dopo aver impostato la config file, connettersi al server utilizzando il seguente comando con il nome del collegamento:

    ssh shortcutName
    

Risoluzione dei problemi

Se hai problemi a stabilire una nuova connessione dopo aver riavviato il server, segui i passaggi seguenti per aiutarti a risolvere il problema:

  • Il modo migliore per risolvere i problemi di accesso SSH o SFTP è tentare di accedere tramite SSH mentre si è connessi alla console di emergenza e guardare il registro, che in genere include il motivo di un errore. Se non viene fornita alcuna motivazione, potrebbe trattarsi di un problema con il firewall. Per i server RPM, eseguire il comando seguente per controllare il registro:

      tail -f /var/log/secure
    

    Per i server Debian, esegui il seguente comando per guardare il registro:

      tail -f /var/log/auth.log
    
  • Se ricevi un connection timeout errore, controlla l'indirizzo IP che hai utilizzato per assicurarti che sia corretto. Potresti anche controllare iptables del server per assicurarti che non stia bloccando la porta utilizzata da SSH.

  • Se ricevi una connection refused errore, potresti provare a utilizzare SSH con la porta sbagliata. Se hai cambiato il tuo server per ascoltare una porta diversa da 22, usa il -p opzione con SSH per specificare la porta.

  • Se il tuo accesso viene rifiutato, potresti avere un problema con la tua chiave. Cambia il sshd configurazione per consentire connessioni con password impostando PasswordAuthentication a yes . Riavvia il server e riprova. Se ti connetti dopo queste modifiche, il problema riguarda la chiave e devi verificare che la chiave sia nella posizione corretta sul server.

  • Se tutto il resto fallisce, rivedi le modifiche e riavvia il demone SSH sul server eseguendo il comando seguente:

    sudo service ssh restart
    

    Se ricevi un messaggio che ti informa che il servizio SSH è sconosciuto, esegui il comando con sshd come nome del servizio invece.


Linux
  1. Come generare una chiave SSH in un server dedicato Linux?

  2. SSH senza password che utilizza coppie di chiavi pubblica-privata

  3. Come eseguire Ssh su un server utilizzando un altro server??

  4. Introduzione a SSH in Linux

  5. Combinazioni di tasti efficienti utilizzando sia Mac che Linux

12 cose da fare dopo aver installato un server Linux

Come generare e utilizzare una chiave SSH utilizzando PuTTY

Come eseguire l'SSH sul server tramite Linux

Genera chiavi RSA con SSH usando PuTTYgen

Accedi a un server Linux con una chiave privata SSH su un client Windows

Come utilizzare SSH per connettersi a un server remoto in Linux o Windows