VirtualBox

Come eseguire l'SSH nel tuo VirtualBox Guest

Come eseguire l'SSH nel tuo VirtualBox Guest
Ci sono momenti in cui vuoi avere un accesso remoto alla tua VM. Forse è solo un sistema operativo server in esecuzione come VM, in cui si testano le applicazioni prima di distribuirle effettivamente.

Avere la capacità di SSH nel tuo SO guest può tornare utile quando non vuoi usare la GUI della tua macchina virtuale. Avvia semplicemente la tua VM in modalità headless e SSH dentro e fuori di essa senza avere più finestre aperte nel tuo terminale.

Per coloro che sono nuovi all'idea di SSH, faremo una breve introduzione al funzionamento di SSH prima di immergerci nella configurazione. Inoltre dovremmo discutere le impostazioni relative alla rete della tua VM per assicurarci di avere accesso a quella VM da qualsiasi punto della tua LAN.

Come funzionano le chiavi SSH?

Ecco un modello semplificato di come funziona SSH. Crei una coppia di chiavi sul tuo computer locale. Una chiave pubblica e una chiave privata. I messaggi crittografati utilizzando la chiave pubblica possono essere decifrati utilizzando la chiave privata e viceversa. Queste chiavi sono solitamente memorizzate sul tuo computer locale in un percorso ~/.ssh/id_rsa(chiave privata) e~/.ssh/id_rsa.pem(la chiave pubblica).

Quindi vai al tuo server remoto, accedi a una console come utente normale o root, apri il file ~/.ssh/chiave_autorizzatedi quel server. Qui inserisci il contenuto della tua chiave pubblica così com'è. Una volta fatto, puoi ssh come quell'utente sul server il cui .La directory ssh ha le chiavi_autorizzate, dal tuo dispositivo locale.

Il .pem estensione significa che quel file è la chiave pubblica che puoi condividere con chiunque. Il id_rsa parte indica solo quale cifrario di crittografia viene utilizzato (in questo caso si tratta di RSA). La chiave privata può essere ulteriormente protetta da una passphrase che dovresti inserire ogni volta che vuoi accedere a un server remoto usando quella chiave privata.

Se hai un Mac, Linux o qualsiasi altro sistema simile a UNIX come computer locale, puoi generare e gestire le chiavi usando il terminale e puoi anche SSH in server remoti usando lo stesso terminale. Per gli utenti Windows, suggerirei di utilizzare PuTTY o Git Bash, quest'ultimo è la mia preferenza personale. I comandi sono praticamente gli stessi una volta che hai un client SSH.

Configurazione chiavi SSH

Per prima cosa assicurati, se non ci sono già chiavi ssh nella tua home directory. Controlla il contenuto della tua directory home .ssh cartella. In caso di dubbio, eseguire il backup del contenuto prima di eseguire il seguente comando. Programmi come Filezilla usano sempre chiavi SSH, all'insaputa dell'utente, quindi questo passaggio è piuttosto cruciale.

Nel tuo macchina locale, apri il terminale e dai il comando:

$ ssh-keygen

Questo sarà seguito dai seguenti messaggi con i valori tra parentesi che indicano i valori predefiniti. Procedi con le istruzioni e fornisci alle tue chiavi una passphrase sicura.

Verifica che le chiavi siano state create controllando il contenuto del tuo ~/.ssh cartella.

$ ls -al ~/.ssh

Se vedi file che corrispondono ai valori predefiniti visualizzati nel ssh-keygen prompt allora tutto ha funzionato bene.

Ora apri una console al tuo Macchina virtuale. Prima controlla se la tua VM ha un server SSH in esecuzione o meno.

$ service sshd status

Se non è installato, usa il tuo gestore di pacchetti per cercare e installare il server OpenSSH. Una volta fatto, assicurati che il firewall della tua VM sia aperto sulla porta numero 22. Ad esempio, se stai usando Ubuntu come VM, il firewall predefinito ufw dovrebbe essere disabilitato o dovrebbe consentire le connessioni della porta 22 in questo modo:

$ sudo ufw status

Se non è aperto sulla porta 22, utilizzare il comando seguente:

$ sudo ufw allow ssh

Quindi apri il file ~/.ssh/chiave_autorizzate  sulla tua VM, usando il tuo editor di testo preferito. Potresti voler abilitare gli appunti da host a guest o bidirezionali per questo passaggio successivo.

All'interno di questo file (in fondo al file, se non è vuoto) incolla il contenuto del tuo chiave pubblica. L'ultima parte in cui dice il tuo nome e l'host locale in cui sono state generate le chiavi non è così importante come il resto della stringa.

(Facoltativo) Non utilizzare le chiavi SSH

Se ti fidi della tua rete locale, puoi usare il metodo meno sicuro di usare la tua password UNIX, per ssh nella tua VM. Apri il file /etc/ssh/sshd_config sulla tua VM e sostituisci la riga:

#PasswordAuthentication no
Per
Autenticazione password sì

Una volta che è a posto, riavvia il tuo server SSH.

$ service sshd riavvio

Ora puoi usare la normale password che usi per accedere alla tua VM per ssh anche su di essa.

La tua macchina virtuale e la tua rete

Per ssh nella tua VM, sia il tuo computer locale (quello con la chiave privata) che la VM dovrebbero essere sulla stessa rete. Quindi puoi raggiungere l'indirizzo IP di quella VM. Ti mostreremo come aggiungere la VM alla tua LAN.

Consideriamo l'esempio di una configurazione tipica di un router domestico. Il tuo computer, insieme ad altri dispositivi, è connesso al router di casa. Questo router funge anche da server DHCP, il che significa che assegna a ciascun dispositivo ad esso connesso un indirizzo IP privato univoco. Il tuo desktop ottiene un IP, così come il tuo telefono e il tuo laptop. Solo i dispositivi collegati a questo router possono comunicare tra loro tramite i loro indirizzi IP.

Abilita la modalità di rete con bridge nelle impostazioni della tua VM e la VM verrà visualizzata come connessa al router di casa (o a un server DHCP simile) con un IP privato. Se un secondo dispositivo è connesso alla stessa rete (ad esempio, allo stesso router domestico), può essere utilizzato per ssh nella VM.

Apri VirtualBox Manager, seleziona la tua VM di destinazione, apri il Impostazioni → Rete e seleziona Bridge Networking invece di NAT.

Come puoi vedere il mio host è connesso tramite Wireless in modo che la connessione sia condivisa anche dalla VM, se stai usando Ethernet, verrà visualizzato un nome di interfaccia diverso che va bene.

Ora, la mia VM, che si chiama ubuntuvm, si presenta sulla mia configurazione LAN come segue. Controlla le impostazioni del tuo router per vedere se lo stesso funziona per te.

Una volta che conosci l'indirizzo IP della tua VM, puoi accedervi tramite SSH eseguendo il comando:

$ ssh @ip.indirizzo.di.il tuo.vm

Se hai inserito una passphrase per la tua chiave privata nei passaggi precedenti, ti verrà chiesto di reinserirla.

Questo è tutto! Ora puoi avviare le tue VM in modalità headless e semplicemente accedervi tramite ssh da qualsiasi punto della casa. Spero che tu abbia trovato interessante questo tutorial, facci sapere se c'è qualche argomento che vorresti che coprissimo.

Installa l'ultimo Dolphin Emulator per Gamecube e Wii su Linux
L'emulatore Dolphin ti consente di giocare ai giochi Gamecube e Wii scelti su Personal Computer Linux (PC). Essendo un emulatore di giochi liberament...
Come utilizzare GameConqueror Cheat Engine in Linux
L'articolo copre una guida sull'utilizzo del motore cheat GameConqueror in Linux. Molti utenti che giocano su Windows utilizzano spesso l'applicazione...
I migliori emulatori di console di gioco per Linux
Questo articolo elencherà il popolare software di emulazione della console di gioco disponibile per Linux. L'emulazione è un livello di compatibilità ...