Guida alle tecnologie

Come trovare le connessioni SSH attive su Linux

4 min read Linux Server Aggiornato 10 Oct 2025
Connessioni SSH attive su Linux — come trovarle
Connessioni SSH attive su Linux — come trovarle

Schermata di terminale che mostra sessioni SSH attive e output di comandi su un server Linux

Prerequisiti

  • Un server con sistema operativo Linux.
  • Accesso root o privilegi sufficienti per eseguire i comandi mostrati.

Breve definizione: SSH (Secure Shell) è il protocollo usato per accedere in modo sicuro a shell remoti; sshd è il demone che ne gestisce le connessioni; /var/log/wtmp registra gli accessi.

Perché verificare le connessioni SSH

Controllare le connessioni SSH è fondamentale per la sicurezza e il troubleshooting. Permette di: rilevare accessi non autorizzati, capire chi esegue processi pesanti, tracciare attività sospette e verificare metriche di utilizzo.

Importante: se noti connessioni sospette, isola la macchina, raccogli log e segui la procedura di incident response della tua organizzazione.

Trovare connessioni SSH attive con who

who mostra gli utenti attualmente connessi.

Esegui:

who

Esempio di output:

root     pts/0        2020-05-01 02:37 (27.61.161.61)
root     pts/1        2020-05-01 02:39 (45.58.38.21)

Interpretazione: due sessioni aperte dai rispettivi indirizzi IP.

Trovare connessioni SSH attive con w

w mostra informazioni più dettagliate: utenti, TTY, tempo di inattività, processi attivi e load average.

Esegui:

w

Esempio di output:

 02:40:07 up 1 day, 18:35,  2 users,  load average: 0.02, 0.02, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    27.61.161.61     02:37    1.00s  0.04s  0.01s ssh [email protected]
root     pts/1    45.58.38.21      02:39    1.00s  0.02s  0.00s w

Uso pratico: utile per vedere cosa stanno eseguendo gli utenti in tempo reale.

Trovare connessioni SSH attive con ps

ps consente di trovare i processi sshd associati alle sessioni e il relativo PID.

Esegui:

ps auxwww | grep sshd: | grep -v grep

Esempio di output:

root         609  0.0  0.1  12160  7268 ?        Ss   Apr29   0:01 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root       35532  0.0  0.2  13864  8796 ?        Ss   02:37   0:00 sshd: root@pts/0
root       35669  0.0  0.2  13860  8916 ?        Ss   02:38   0:00 sshd: root@pts/1

Interpretazione: il PID permette di tracciare la risorsa consumata o di terminare una sessione (con cautela).

Trovare connessioni SSH attive con netstat

netstat mostra le connessioni di rete attive e le porte.

Esegui:

netstat -tnpa | grep 'ESTABLISHED.*sshd'

Esempio di output:

tcp        0     88 45.58.38.21:22          27.61.161.61:8363       ESTABLISHED 35532/sshd: root@pt 
tcp        0      0 45.58.38.21:22          45.58.38.21:51166       ESTABLISHED 35669/sshd: root@pt 

Nota: su alcune distribuzioni netstat fa parte del pacchetto net-tools non installato di default; in tal caso installalo o usa ss.

Trovare connessioni SSH attive con last

last legge /var/log/wtmp e indica chi è ancora connesso.

Esegui:

last -a | grep -i still

Esempio di output:

root     pts/1        Fri May  1 02:39   still logged in    45.58.38.21
root     pts/0        Fri May  1 02:37   still logged in    27.61.161.61
reboot   system boot  Wed Apr 29 08:04   still running      5.4.0-26-generic

Uso pratico: utile per audit e per capire da quanto tempo le sessioni sono attive.

Trovare connessioni SSH attive con ss

ss è il sostituto moderno di netstat. Mostra socket, stati e statistiche.

Esegui:

ss | grep -i ssh

Esempio di output:

tcp   ESTAB  0      0                      45.58.38.21:51166        45.58.38.21:ssh                                                                             
tcp   ESTAB  0      56                     45.58.38.21:ssh         27.61.161.61:8363                                                                            
tcp   ESTAB  0      0                      45.58.38.21:ssh          45.58.38.21:51166                                                                           

ss è consigliato per script e analisi perché è più veloce e fornisce filtri precisi.

Esempi rapidi e snippet di utilità

  • Lista rapida di IP con sessioni SSH attive:
ss -tnp | awk '/sshd/ {print $5}' | cut -d: -f1 | sort -u
  • Controllo PID e ultimo comando per una sessione (sostituisci PID):
ps -fp 35532
lsof -p 35532
  • Terminare una sessione (usa con cautela):
kill -15 35532

Quando questi metodi possono fallire

  • Connessioni via port forwarding o jump host possono mostrare IP del salto invece dell’IP client.
  • Sessioni compensate da bastion host non mostrano il client finale sul server di destinazione.
  • Se i log sono stati ruotati o cancellati, last non mostrerà informazioni complete.

Approcci alternativi

  • Abilitare logging dettagliato in /etc/ssh/sshd_config con LogLevel VERBOSE per traccia più ricche.
  • Usare strumenti di auditing centralizzati (rsyslog, syslog-ng, ELK/EFK) per aggregare e analizzare connessioni.
  • Implementare autenticazione a due fattori o certificate-based per ridurre il rischio.

Check-list per l’amministratore

  • Verificare connessioni attive almeno una volta al giorno.
  • Confrontare IP con elenco di indirizzi autorizzati.
  • Monitorare tentativi di accesso ripetuti (fail2ban o simili).
  • Registrare PID e output in caso di attività sospette.
  • Eseguire snapshot o acquisire RAM se sospetto un compromesso.

Modello mentale rapido

Pensa ai comandi come a diversi livelli di dettaglio: who/w = chi; ps = processo; ss/netstat = rete; last = storico.

Sicurezza e privacy

  • Limita l’accesso SSH con firewall, allowlist IP o VPN.
  • Registra i log su server separato per evitare manomissioni.
  • Assicurati che la raccolta e la conservazione dei log rispettino la normativa locale sulla privacy.

Glossario in una riga

  • SSH: protocollo per accesso remoto sicuro. sshd: demone SSH. wtmp: file binario che registra login/logout.

Conclusione

Questi comandi ti permettono di vedere rapidamente chi è connesso al server e da dove. Usa una combinazione di strumenti per ottenere visibilità completa: who/w per controllo veloce, ps per indagare processi, ss/netstat per dettagli di rete e last per lo storico.

Importante: integra questi comandi in procedure operative (SOP) e sistemi di logging centralizzati per migliorare la rilevazione e la risposta agli incidenti.

Sommario:

  • Controlla connessioni regolarmente.
  • Usa più comandi per confermare informazioni.
  • Automatizza notifiche per connessioni anomale.

Nota: evita di terminare sessioni senza aver identificato chiaramente la causa; potresti interrompere lavoro legittimo.

Autore
Redazione

Materiali simili

GmusicFS su Android — monta Google Music
Android

GmusicFS su Android — monta Google Music

Repository yum locale su Fedora 8
Linux

Repository yum locale su Fedora 8

Attivare audio mono in Windows
Audio

Attivare audio mono in Windows

Fallout 4 in stile Borderlands — guida rapida
Giochi

Fallout 4 in stile Borderlands — guida rapida

Risolvere consumo batteria iOS 16
Assistenza iPhone

Risolvere consumo batteria iOS 16

Correggere errore directory Windows non supportata
Windows

Correggere errore directory Windows non supportata