skip to Main Content

Ssh è lo strumento più importante per ogni amministratore di sistema. In questo articolo raccogliamo alcuni “trucchi” che rendono la vita più facile a chi ne fa un uso intenso.

ssh senza password

È molto semplice connettersi ad un server autenticandosi con la propria chiave, senza dover sempre digitare la password.

  1. generiamo una coppia chiave pubblica-chiave privata sulla nostra macchina:
    # ssh-keygen
  2. Se esiste sulla nostra macchina il comando ssh-copy-id, copiamo il file .pub sulla macchina remota con il comando
    # ssh-copy-id USER@HOST_REMOTO

    Oppure copiamo il contenuto del file ~/.ssh/id_rsa.pub nel file ~/.ssh/authorized_keys sull’host remoto

    # cat /home/stefano/.ssh/id_rsa.pub | ssh USER@HOST_REMOTO 'cat >> ~/.ssh/authorized_keys'

    Se la cartella ~/.ssh/ non esiste, va creata prima.

  3. Se il file authorized_keys non esisteva prima, i suoi permessi andranno corretti
    # ssh USER@HOST_REMOTO 'chmod 600 ~/.ssh/authorized_keys'

ssh config tweaks

nel file ~/.ssh/config si possono specificare parecchie impostazioni interessanti per ogni host

# man ssh_config

Per tutti gli host (Host *) possiamo usare queste impostazioni:

Host *
   ControlMaster auto
   ControlPath /tmp/master-%r@%h:%p
   ControlPersist 1h
   User root
  • ControlMaster auto : usa la stessa connessione per più sessioni. Ovvero ci si dovrà autenticare solo alla prima connessione, le altre che verranno aperte mentre la prima è attiva non richiederanno password. (OpenSSH client >= 3.8)
  • ControlPersist 1h : si usa in combinazione con il precedente. La connessione principale rimane aperta per 1 ora, in questo modo se si chiude la sessione e ci si riconnette prima di un’ora, non verrà richiesta l’autenticazione. (OpenSSH client >= 5.5)
  • ControlPath: indica dove e con che nome salvare le sessioni aperte. Modificatelo solo se sapete cosa state facendo
  • User root : con questa opzione si definisce l’utente di default. Quindi eseguendo il comando
    # ssh host

    come utente non privilegiato, sarà equivalente a

    # ssh root@host
  • Ci sono molte altre personalizzazioni possibili in config:
    # man ssh_config
Back To Top
English French German Italian Spanish