GNU/Linux >> Linux Esercitazione >  >> Linux

Un ragazzo Windows in un mondo Linux:configurazione del comando SSH in Linux

Linux e Windows erano nemici mortali, ma oggigiorno tendono ad andare molto d'accordo. In effetti, ora puoi utilizzare SSH anche nativamente in Windows:sia come client che come server. Cosa fai quando sei un amministratore di Windows ma devi gestire anche macchine Linux? Ti abitui al comando SSH (Secure Shell) in Linux!

Questa è la parte IV della serie di post sul blog A Windows Guy in a Linux World. Se desideri saperne di più sui concetti Linux più diffusi, assicurati di consultare la Parte I, la Parte II e la Parte III.

In questo post imparerai tutto su come abilitare SSH in Linux e su come configurare il tuo client SSH Windows per la connessione a server Linux remoti.

Nota:tutti gli esempi utilizzeranno OpenSUSE Linux.

Allontanarsi dall'ambiente desktop

Nel primo post di questa serie, il tutorial consigliava di utilizzare l'ambiente desktop KDE. Mentre stavi esaminando la configurazione di OpenSUSE, probabilmente hai visto un'altra opzione allettante; l'edizione server di OpenSUSE.

Se hai installato l'edizione server della maggior parte delle distribuzioni Linux (incluso OpenSUSE), potresti aver notato la completa mancanza di un desktop. L'edizione Server delle distribuzioni più popolari (come OpenSUSE, così come Ubuntu Server e CentOS) è come Windows Server Core:nessun desktop di cui parlare.

Per capire perché il desktop è in genere evitato nella cultura Linux, devi conoscere CLI e SSH.

SSH:il gold standard della gestione remota

SSH, come molti altri protocolli di gestione remota, è un sistema basato su client-server. Un client si connette in remoto tramite la rete a un server e consente di eseguire comandi (o persino trasferire file). SSH è lo standard de facto quando si tratta di gestire Linux in remoto.

Poiché SSH è in circolazione da molto tempo ed è profondamente radicato nell'ecosistema Linux, le utilità di amministrazione della riga di comando dominano l'ambiente del server Linux. La maggior parte delle distribuzioni di server Linux non ha un'interfaccia grafica.

Utilizzo dei comandi SSH in Linux

Basta parlare. Vediamo cosa può fare SSH abilitandolo prima in OpenSUSE Linux. Per farlo, usa il gestore di pacchetti YaST. Per abilitare SSH con YaST in OpenSUSE:

  1. Fai clic sul menu di avvio, digita terminale e scegli Konsole supponendo che tu abbia installato KDE Desktop Manager durante l'installazione di OpenSUSE.
  2. Nel terminale, apri YaST eseguendo sudo yast .
  3. Una volta in YaST, fai una freccia verso il basso fino a sistema , quindi freccia su gestore dei servizi e premi Invio per procedere.
  4. Freccia verso il basso fino a sshd e premi alt+s per avviare il servizio SSH.
  5. Premi alt+r per cambiare la modalità di avvio da manuale a all'avvio. Ciò garantirà che il servizio del server SSH venga avviato anche dopo un riavvio.
  6. Premi alt+o a ok le modifiche e applicarle.

Puoi vedere questi passaggi in azione di seguito.

Consentire SSH attraverso il firewall

Quasi tutte le distribuzioni Linux sono dotate di una sorta di firewall per proteggerlo come fa Windows. Puoi leggere il firewall di OpenSUSE qui. Per assicurarti di poter accedere al servizio SSH in remoto da Windows, devi consentirlo attraverso il firewall. Per farlo:

  1. Sempre nel terminale, riavvia YaST con sudo yast .
  2. Freccia verso il basso fino a Sicurezza e utenti e poi freccia su Firewall e premi Invio per procedere.
  3. Vai a Zone –> Pubblico e freccia su Servizi—Porte riquadro a destra.
  4. Freccia verso il basso per trovare ssh nei servizi.
  5. Seleziona ssh con la barra spaziatrice e premi alt+d per aggiungere la selezione.
  6. Premi alt+a per accettare le modifiche.

Puoi vedere tutti questi passaggi sopra rappresentati visivamente di seguito.

Proprio come Windows, Linux ha diversi livelli di affidabilità per applicare le regole del firewall. Questi livelli sono indicati come zone. Windows ha zone pubbliche, di lavoro e private per impostazione predefinita. Linux ne ha molti di più, ma per impostazione predefinita è la zona pubblica.

Connessione a Linux da Windows

Fortunatamente, al giorno d'oggi, Windows 10 ha un client SSH integrato. Per connetterti a un host Linux, apri un prompt dei comandi (cmd) o una console di PowerShell e specifica il nome utente con cui connetterti e l'IP o il nome host.

> ssh @

Se tutto va bene, il client SSH dovrebbe chiederti di accettare un'impronta digitale. Un'impronta digitale è un identificatore per assicurarsi che qualcuno non abbia dirottato l'indirizzo IP di destinazione.

Se utilizzi Windows 7, puoi comunque inviare SSH al tuo host Linux. Dovrai solo scaricare il client Microsoft SSH da qui. Questo client SSH è lo stesso utilizzato da Windows 10.

Dopo aver digitato yes e inserisci la tua password sei connesso al tuo server! Ora puoi usare la riga di comando proprio come se stessimo aprendo un terminale sul computer stesso.

Non esporre SSH (porta predefinita 22) a Internet tramite il router. I bot eseguono la scansione di Internet costantemente alla ricerca di porte SSH aperte. Non appena un bot trova una porta aperta, inizierà a inviare spam alle password cercando di entrare con la forza bruta.

Abilitazione del supporto mouse in SSH con Windows

Uno dei grandi svantaggi dell'utilizzo del client SSH nativo di Windows 10 (almeno al momento della stesura di questo articolo) è la mancanza di supporto per il mouse. Ciò significa che non puoi usare il mouse in Midnight Commander come hai appreso in un precedente post sul blog.

Fortunatamente, a partire dalla versione otto del client Windows OpenSSH, puoi ottenere il supporto per il mouse! Installiamo questo client.

  1. Scarica l'ultima versione di OpenSSH-Win64 da qui ed estrai il file zip risultante. Il tutorial presuppone che tu lo estragga in ~\Downloads\OpenSSH-Win64 .
  2. Apri una console PowerShell e naviga ~\Downloads\OpenSSH-Win64 con cd ~\Downloads\OpenSSH-Win64 .
  3. Verifica la versione del client SSH eseguendo .\\ssh -V . Al momento della stesura di questa guida, la versione dovrebbe essere 8.1.0.0-p1.
  4. SSH nel tuo server Linux utilizzando .\ssh @ .
  5. Una volta effettuato l'accesso, verifica il supporto del mouse eseguendo mc per eseguire il comando di mezzanotte per assicurarti di poter usare un mouse.

Puoi vedere tutti questi passaggi sopra rappresentati visivamente di seguito.

Sostituzione del client SSH predefinito

Se desideri utilizzare la nuova versione in modo più permanente, puoi; ma devi sovrascrivere il client SSH di Windows 10 predefinito. Ciò garantisce ogni volta che esegui ssh sulla riga di comando viene utilizzata la versione più recente (con supporto per il mouse).

Supponendo che tu abbia estratto il client in ~\Downloads\OpenSSH-Win64 cartella

  1. Sposta la cartella OpenSSH-Win64 estratta in una cartella permanente a tua scelta. Questo tutorial utilizzerà C:\users\public\OpenSSH-Win64 .
  2. Vai a Inizia e poi Esegui e digita sysdm.cpl oppure, apri Sistema dal pannello di controllo.
  3. Sotto il Avanzato scheda, fai clic su Variabili d'ambiente .
  4. In Variabili di sistema , fai clic su Percorso .
  5. Fai clic su Nuovo per aggiungere un nuovo percorso e fornire il percorso della cartella al client SSH (C:\users\public\OpenSSH-Win64 in questo caso).
  6. Fai clic su Sposta in alto finché non è al di sopra di %SystemRoot%\system32 cartella. Ciò garantirà ogni volta che digiti ssh sulla riga di comando, Windows guarderà prima qui.
  7. Apri una console PowerShell ed esegui ssh -V . Dovresti vedere che la versione è 8.1.0.0-p .

Questi passaggi sono riepilogati di seguito.

La priorità di una cartella su %SystemRoot%\system32 può essere un rischio per la sicurezza. Se qualcuno ha accesso al tuo computer, può decidere di inserire un virus nella cartella OpenSSH-Win64 e nominarlo come un'utilità di Windows come cd.exe .

Dovresti limitare la cartella OpenSSH-Win64 alla sola lettura per chiunque tranne gli amministratori.

  1. Fai clic con il pulsante destro del mouse sulla cartella OpenSSH-Win64 e fai clic su Proprietà .
  2. Sotto la Sicurezza scheda, fai clic su Avanzate pulsante.
  3. Fai clic su Disabilita eredità per consentire autorizzazioni per cartelle personalizzate e per impedire alle cartelle principali di sovrascrivere le autorizzazioni nella cartella OpenSSH-Win64.
  4. Scegli Aggiungi , trova gli Amministratori raggruppare e dare loro tutti i diritti.
  5. Fai clic su Aggiungi , trova Tutti gruppo e concedi loro i permessi di sola lettura.
  6. Seleziona l'autorizzazione Sostituisci tutti gli oggetti secondari checkbox per propagare queste impostazioni a tutti i file nella cartella OpenSSH-Win64; fai clic su Applica .
  7. Ora verifica queste autorizzazioni creando un nuovo file nella cartella OpenSSH-Win64. Windows dovrebbe richiedere una richiesta di amministratore.

Puoi vedere tutti questi passaggi sopra rappresentati visivamente di seguito.

Gestione delle sessioni disconnesse con Tmux

Ah, che dolore! Sei a metà dell'esecuzione di un comando di lunga esecuzione su SSH e Internet si interrompe. Ora non hai la più pallida idea dello stato in cui si trova il server Linux! È fatto con quel comando? Come fai a recuperarlo?

Le sessioni disconnesse sono un problema legittimo con SSH e fortunatamente ha una soluzione semplice. Hai bisogno di un multiplexer di terminale (tmux).

Tmux sta sia per l'abbreviazione di terminal multiplexer, sia per il nome del programma stesso

Tmux è un gestore di sessioni per SSH. Si "resiste" a una sessione se ti disconnetti e la mantiene in esecuzione in background. Puoi riconnetterti a quella sessione in un secondo momento o persino creare più sessioni e passare da una all'altra.

Per gestire sessioni disconnesse con tmux:

  1. Nel terminale Linux, scarica e installa l'utility tmux eseguendo sudo zypper install -y tmux come si vede di seguito:

Puoi usare YaST anche per scaricare l'utility tmux.

La maggior parte delle distribuzioni Linux ha un gestore di pacchetti della riga di comando diverso. OpenSUSE usa zypper. Arch usa pacman. Ubuntu usa apt. Red Hat usa dnf e yum. Per fortuna, la sintassi per questi gestori di pacchetti è abbastanza simile su tutta la linea.

2. Sul tuo computer Windows, apri una console PowerShell e SSH nel tuo server Linux. Il tutorial utilizzerà un nome utente di homelab e un IP del server Linux di 192.168.134.169.

ssh @

3. Apri tmux eseguendo tmux una volta connesso. Dovresti ottenere una barra verde in basso

4. Eseguire un comando che restituisce del testo. Non importa cosa sia. Questo tutorial utilizza neofetch . Puoi eseguire ls anche.

5. Disconnettere la sessione chiudendo PowerShell. Questa azione simula un abbandono.

6. Riconnettiti nuovamente al tuo server Linux usando SSH.

7. Ora ricollegati alla vecchia sessione eseguendo tmux a Dovresti comunque vedere l'output di quel ls precedente comando. Evviva, nessuna perdita di dati dalla disconnessione!

Puoi vedere tutti questi passaggi sopra rappresentati visivamente di seguito.

Se provi a eseguire l'utilità Midnight Commander all'interno di tmux , potresti notare che non hai il supporto per il mouse. Puoi risolverlo eseguendo mc -x invece.

Abilitazione di tmux all'accesso

Per impostazione predefinita, tmux non sarà disponibile in tutte le sessioni SSH. Puoi cambiarlo costringendo tmux a collegarsi alla tua sessione SSH ogni volta che accedi.

Supponendo che tu sia collegato tramite SSH al tuo server Linux:

  1. Apri l'utilità del comandante di mezzanotte usando mc.

2. Evidenziare .bashrc file e premi modifica .

Il .bashrc file è uno script di shell (batch) che viene eseguito ogni volta che accedi tramite riga di comando

3. Aggiungi il codice dello script della shell sottostante nella parte inferiore del file di testo.

if [ -z "$TMUX" ]; then tmux attach -t default || tmux new -s default fi

4. Fai clic su chiudi e salva quando richiesto.

5. Testare il collegamento automatico di tmux disconnettendosi dalla sessione SSH e riconnettendosi. Dovresti visualizzare automaticamente una barra verde in basso, a indicare che sei connesso a un tmux sessione!

Questo è davvero solo graffiare la superficie di ciò che tmux può fare, è un programma multitasking piuttosto potente. Se chiedi a un amministratore Linux qual è il comando più utilizzato, probabilmente è tmux .

Concludi

Questo conclude l'ultimo post in A Windows Guy in a Linux World serie di post sul blog. Resta sintonizzato sul blog ATA per la prossima installazione in arrivo!


Linux
  1. Come trovare connessioni SSH attive su Linux

  2. Comando Linux mv

  3. Linux du comando

  4. comando IP Linux

  5. comando cd di Linux

Come passare la password al comando SSH in Linux

Utilizzo del comando SSH nei sistemi Linux/Unix

Un ragazzo Windows in un mondo Linux:VS Code e SSH remoto

Un ragazzo di Windows in un mondo Linux:utenti e autorizzazioni di file

Un ragazzo Windows in un mondo Linux:YaST e il desktop

Configurazione di un ambiente di sviluppo brillante all'interno di Linux su Windows 10