Compare commits

..

No commits in common. "21437970f1ee910385342079a139703b64d785ac" and "872779e636655148ef568c2acc0bb8493958073c" have entirely different histories.

2 changed files with 0 additions and 141 deletions

View file

@ -235,144 +235,3 @@ 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.