Compare commits
2 commits
872779e636
...
21437970f1
Author | SHA1 | Date | |
---|---|---|---|
21437970f1 | |||
60a6bfc599 |
2 changed files with 141 additions and 0 deletions
|
@ -235,3 +235,144 @@ simile a quello riportato sotto.
|
||||||
| |
|
| |
|
||||||
-----------
|
-----------
|
||||||
```
|
```
|
||||||
|
# Secure Shell
|
||||||
|
|
||||||
|
Il protocollo SSH (Secure Shell) è un protocollo di rete che fornisce
|
||||||
|
una connessione sicura e crittografata tra due sistemi informatici su
|
||||||
|
una rete non sicura. OpenSSH è una delle implementazioni più comuni di
|
||||||
|
SSH, che offre una serie di strumenti per la gestione delle chiavi
|
||||||
|
SSH, l'autenticazione e la sicurezza delle connessioni.
|
||||||
|
|
||||||
|
## Comando `ssh`
|
||||||
|
|
||||||
|
Il comando `ssh` è utilizzato per stabilire una connessione sicura con
|
||||||
|
un server remoto. Ad esempio, per connettersi a un server remoto con
|
||||||
|
l'indirizzo IP `192.168.1.100` come utente `utente`, il comando è:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh utente@192.168.1.100
|
||||||
|
```
|
||||||
|
|
||||||
|
Questo comando avvia una sessione SSH con il server specificato,
|
||||||
|
richiedendo l'autenticazione dell'utente.
|
||||||
|
|
||||||
|
## Comando `ssh-keygen`
|
||||||
|
|
||||||
|
`ssh-keygen` è uno strumento per generare una coppia di chiavi
|
||||||
|
pubbliche/private per l'autenticazione SSH. Per generare una nuova
|
||||||
|
chiave SSH, si può eseguire il comando `ssh-keygen` come nell'esempio sotto
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh-keygen -t rsa
|
||||||
|
```
|
||||||
|
|
||||||
|
Agendo sulle opzioni del comando, si può specificare un percorso per
|
||||||
|
salvare la chiave impostare una passphrase per la chiave privata per
|
||||||
|
una maggioreq sicurezza.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh-keygen -t rsa -b 2048 -f ~/.ssh/mykey
|
||||||
|
```
|
||||||
|
|
||||||
|
Questo comando genera una chiave RSA di 2048 bit e la salva nel file
|
||||||
|
`~/.ssh/mykey`. La chiave pubblica corrispondente sarà salvata in
|
||||||
|
`~/.ssh/mykey.pub`.
|
||||||
|
|
||||||
|
## Comando `ssh-copy-id`
|
||||||
|
|
||||||
|
`ssh-copy-id` è uno strumento che copia la chiave pubblica SSH di un
|
||||||
|
utente in un server remoto, consentendo l'accesso senza password. Per
|
||||||
|
copiare la chiave pubblica `mykey.pub` dell'utente corrente al server
|
||||||
|
`192.168.1.100`, il comando è:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh-copy-id -i ~/.ssh/mykey.pub utente@192.168.1.100
|
||||||
|
```
|
||||||
|
|
||||||
|
Questo comando copia la chiave pubblica nel file
|
||||||
|
`~/.ssh/authorized_keys` dell'utente remoto, consentendo l'accesso
|
||||||
|
senza password. Dopo aver copiato la chiave, è possibile testare
|
||||||
|
l'accesso senza password con:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh -i ~/.ssh/mykey utente@192.168.1.100
|
||||||
|
```
|
||||||
|
|
||||||
|
I nomi di default per le chiavi pubbliche e private sono
|
||||||
|
rispettivamente `id_rsa.pub` e `id_rsa`. Utilizzando queste chiavi,
|
||||||
|
l'accesso al server senza password si semplifica. Basterà infatti
|
||||||
|
eseguire
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh utente@192.168.1.100
|
||||||
|
```
|
||||||
|
|
||||||
|
## Mobile Shell (mosh)
|
||||||
|
|
||||||
|
Mosh, acronimo di Mobile Shell, è un'applicazione di terminale remoto
|
||||||
|
che risolve i problemi di connettività tipici di SSH, specialmente su
|
||||||
|
reti mobili o instabili. A differenza di SSH, che utilizza TCP e
|
||||||
|
richiede una connessione stabile, Mosh utilizza UDP, che è un
|
||||||
|
protocollo senza connessione, permettendo una connessione più stabile
|
||||||
|
e reattiva anche in presenza di interruzioni temporanee della
|
||||||
|
connessione. Mosh mantiene una connessione attiva attraverso
|
||||||
|
cambiamenti di indirizzo IP e sospensioni del dispositivo, rendendolo
|
||||||
|
ideale per l'uso su dispositivi mobili.
|
||||||
|
|
||||||
|
### Come funziona Mosh
|
||||||
|
|
||||||
|
Mosh inizia stabilendo una connessione SSH per l'autenticazione,
|
||||||
|
utilizzando le stesse credenziali di SSH (ad esempio, password o
|
||||||
|
chiavi pubbliche). Successivamente, avvia un server Mosh sul
|
||||||
|
dispositivo remoto e stabilisce una connessione UDP per la
|
||||||
|
comunicazione. Questo approccio consente a Mosh di gestire meglio la
|
||||||
|
perdita di pacchetti e di mantenere una connessione attiva anche in
|
||||||
|
presenza di interruzioni temporanee della rete.
|
||||||
|
|
||||||
|
### Vantaggi di Mosh rispetto a SSH
|
||||||
|
|
||||||
|
- **Robustezza e Responsività**: Mosh è più robusto e reattivo
|
||||||
|
rispetto a SSH, soprattutto su connessioni Wi-Fi, cellulari e lunghe
|
||||||
|
distanze. Questo è dovuto al suo protocollo basato su UDP che
|
||||||
|
gestisce meglio la perdita di pacchetti e imposta il tasso di
|
||||||
|
fotogrammi in base alle condizioni della rete.
|
||||||
|
- **Eco Locale Intelligente**: Mosh fornisce un eco locale speculativo
|
||||||
|
delle pressioni dei tasti, permettendo all'utente di vedere le
|
||||||
|
proprie pressioni dei tasti quasi istantaneamente, senza attendere
|
||||||
|
il round trip di rete. Questo migliora l'esperienza utente,
|
||||||
|
specialmente su connessioni ad alta latenza.
|
||||||
|
- **Supporto per Roaming**: Mosh supporta il roaming, permettendo
|
||||||
|
all'utente di cambiare la propria posizione fisica senza
|
||||||
|
interrompere la sessione. Questo è particolarmente utile per gli
|
||||||
|
utenti mobili che si spostano tra diversi luoghi.
|
||||||
|
|
||||||
|
### Esempi
|
||||||
|
|
||||||
|
Per connettersi a un server remoto utilizzando Mosh, il comando è
|
||||||
|
simile a quello di SSH, ma utilizzando `mosh` al posto di `ssh`. Ad
|
||||||
|
esempio:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mosh utente@host
|
||||||
|
```
|
||||||
|
|
||||||
|
E' possibile utilizzare `mosh` e `tmux` insieme. Ad esempio, con la
|
||||||
|
seguente linea di comando è possibile connettersi al server remoto ed
|
||||||
|
eseguire tmux.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mosh utente@host -- tmux
|
||||||
|
```
|
||||||
|
|
||||||
|
## Riferimenti
|
||||||
|
|
||||||
|
[1] https://www.ssh.com/academy/ssh/copy-id
|
||||||
|
[2] https://www.techtarget.com/searchsecurity/tutorial/Use-ssh-keygen-to-create-SSH-key-pairs-and-more
|
||||||
|
[3] https://alexhost.com/faq/using-ssh-copy-id-ssh-keygen-commands-in-linux/
|
||||||
|
[4] https://www.ssh.com/academy/ssh/keygen
|
||||||
|
[5] https://www.digitalocean.com/community/tutorials/ssh-essentials-working-with-ssh-servers-clients-and-keys
|
||||||
|
[6] https://docs.oracle.com/en/operating-systems/oracle-linux/openssh/openssh-WorkingwithSSHKeyPairs.html
|
||||||
|
[7] https://www.redhat.com/sysadmin/configure-ssh-keygen
|
||||||
|
[8] https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server
|
||||||
|
[9] https://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/
|
||||||
|
[10] https://mosh.org/
|
||||||
|
|
Binary file not shown.
Loading…
Reference in a new issue