Usare SSH per utilizzare in modo sicuro Connessione desktop remoto a Windows

Pagina aggiornata :
Data di creazione della pagina :

Ambiente operativo

Connessione remota a Windows
  • finestre 11
Connessione remota da Windows
  • finestre 10
OpenSSH
  • OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2

Prerequisiti

Connessione remota a Windows
  • Windows 10 o versioni successive (è richiesta una versione Pro o un'altra edizione). Tuttavia, questo non si applica se OpenSSH può essere preparato separatamente.
  • Windows Server 2019 o versione successiva. Tuttavia, questo non si applica se OpenSSH può essere preparato separatamente.
Connessione remota da Windows
  • Windows (la maggior parte delle versioni sono possibili)
  • Windows Server (la maggior parte delle versioni sono possibili)

Dapprima

Dopo aver creato un ambiente Windows su Internet nel cloud o nel VPS, spesso si utilizza una connessione desktop remoto per gestire la destinazione Windows remota.

Nella connessione desktop remoto, il contenuto della comunicazione è crittografato e, se il nome utente e la password non vengono divulgati, gli altri non accederanno senza autorizzazione. C'è sempre la preoccupazione che le persone tentino di accedere da qualsiasi luogo.

Alcuni dei principali cloud dispongono di firewall separati dalle macchine virtuali e di una funzione per limitare l'origine della connessione. Queste funzionalità potrebbero non essere disponibili in tutti i servizi. Soprattutto in ambienti costruiti con un budget ridotto, ci sono molti casi in cui tali funzioni non sono disponibili.

Pertanto, questa volta, vorrei limitare il più possibile l'origine della connessione aggiungendo la funzione SSH . Poiché vengono utilizzate la chiave privata e la chiave pubblica, purché la chiave privata non venga persa, la possibilità di accedere in remoto da un altro ambiente può essere ridotta al minimo il più possibile.

In questo caso, utilizzeremo OpenSSH per costruire l'ambiente SSH.

Creare un ambiente Windows di destinazione remota

Crea un ambiente Windows che ti consenta di connetterti in remoto tramite Internet. Non importa dove viene compilato, purché venga eseguito tramite Internet, ma per questa verifica verrà compilato come macchina virtuale in Microsoft Azure. I passaggi per creare in Azure non sono rilevanti per questo suggerimento, quindi li ometterò. Poiché questa volta verrà usata la porta 22, se si usa Azure, assicurarsi che la comunicazione della porta 22 passi attraverso le impostazioni della macchina virtuale in Azure.

Se si esegue la compilazione in un ambiente diverso da Azure, assicurarsi di essere in una posizione in cui è possibile stabilire una connessione desktop remoto a Windows per l'ambiente.

Inoltre, la versione per Windows è destinata a Windows 10 o versioni successive o Windows Server 2019 o versioni successive, il che semplifica la creazione di un ambiente OpenSSH. Può essere implementato in un ambiente precedente, ma richiede un po' più di tempo e impegno perché è necessario scaricare e configurare OpenSSH separatamente.

In tal caso, la procedura è la stessa dell'SFTP, quindi fare riferimento ai seguenti suggerimenti.

Configurazione di OpenSSH

Da qui, lavoreremo nell'ambiente remoto di Windows. Innanzitutto, connettiti alla destinazione remota con una connessione desktop remoto. Se il tuo cloud o VPS fornisce una console, puoi usarla. Poiché questa volta operiamo in un ambiente Windows 11, i passaggi potrebbero essere leggermente diversi in altre versioni.

Apri il menu Start e seleziona Impostazioni.

Seleziona un'app.

Selezionare Funzionalità facoltative.

Selezionare Mostra feature.

C'è "OpenSSH Server" un po' più in basso nell'elenco, quindi controllalo e fai clic su "Avanti".

Fare clic su Installa.

Quando l'installazione è completa e "OpenSSH Server" viene aggiunto all'elenco seguente, il gioco è fatto.

Configurazione del servizio per OpenSSH

Fare clic con il pulsante destro del mouse sul menu Start e selezionare Gestione computer.

Seleziona Servizi dall'elenco a sinistra.

Trova "OpenSSH SSH Server" nell'elenco centrale, fai clic con il pulsante destro del mouse e seleziona "Proprietà".

Quando ci si connette da remoto, si desidera che il server OpenSSH sia in esecuzione, quindi impostare il "Tipo di avvio" su "Automatico".

Dal momento che al momento non è in esecuzione, lo avvierò qui, inclusa l'impostazione.

Una volta avviato, fare clic sul pulsante OK per chiuderlo. Dovrebbe essere in esecuzione nell'elenco.

Configurazione di OpenSSH

Nello stato iniziale, l'autenticazione tramite chiave privata è disabilitata, quindi impostala. Aprire la seguente cartella in Esplora risorse.

  • C:\ProgramData\ssh

Tuttavia, la cartella sopra potrebbe essere una cartella nascosta, quindi rendila visibile impostando le opzioni di Explorer.

C'è un file chiamato nella cartella, quindi aprilo con un editor di testo come Blocco sshd_config note. Poiché questa volta apporteremo modifiche, si prega di copiare e duplicare come sshd_config_old backup prima della modifica.

PubkeyAuthentication yes Cercare: Questo elemento è un'impostazione che indica se abilitare l'autenticazione con chiave privata. Per impostazione predefinita, è disabilitato e dice , ma è commentato, yes quindi rimuovi il commento.

Prima del cambiamento

#PubkeyAuthentication yes

Dopo il cambiamento

PubkeyAuthentication yes

PasswordAuthentication yes Cercare: Questa voce è un'impostazione che indica se abilitare l'autenticazione tramite password. È abilitato per impostazione predefinita e, anche se si abilita l'autenticazione con chiave privata, non ha senso dal punto di vista della sicurezza se rimane abilitato, quindi decommentarlo e no impostare .

Prima del cambiamento

#PasswordAuthentication yes

Dopo il cambiamento

PasswordAuthentication no

Commenta la seguente riga verso la fine: Questa è l'impostazione chiave per il gruppo administrators e la disabiliteremo perché in questo caso supporteremo gli accessi per utente.

Prima del cambiamento

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Dopo il cambiamento

#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Dopo aver salvato il file dopo OpenSSH SSH Server la modifica, riavviare il servizio in modo che rifletta le impostazioni.

Se si desidera modificare la porta

Se si desidera modificare la porta SSH, modificare quanto segue.

Prima del cambiamento

#Port 22

Dopo il cambiamento

#Port <任意の番号>

Modificando il numero di porta, la porta predefinita non verrà attaccata, il che porterà a una maggiore sicurezza. D'altra parte, aumenta la complessità dell'operazione, quindi è necessario stare attenti.

Se si modifica il numero di porta, è necessario specificare una porta diversa da 22 durante la connessione.

Creazione di chiavi private e pubbliche

Si tratta di un'attività lato client. Tuttavia, non importa dove lavori. Tuttavia, fai attenzione a non far trapelare la chiave privata che hai creato.

Se hai Windows 10 o versioni successive, Windows Server 2019 o versioni successive, il client OpenSSH è installato per impostazione predefinita, quindi puoi crearlo facilmente con un comando. In altri ambienti, sarà necessario installare un client OpenSSH separato o utilizzare uno strumento separato.

I seguenti suggerimenti sono per SFTP, ma fai riferimento ad essi per configurare un client OpenSSH.

Nell'ambiente client, avviare un prompt dei comandi, PowerShell, un terminale o qualsiasi strumento in grado di eseguire comandi.

Dal momento che creerai un file, spostati cd in qualsiasi directory con un comando.

Eseguire il comando seguente:

ssh-keygen -t rsa -f id_rsa

È possibile impostare una passphrase (password) per la chiave, quindi inserirla se necessario. Se si imposta una passphrase, la sicurezza sarà migliorata, ma aumenterà il tempo e l'impegno per l'immissione della passphrase nel processo successivo.

Sono state create una chiave pubblica (id_rsa.pub) e una chiave privata (id_rsa).

La chiave pubblica (id_rsa.pub) verrà inserita nella destinazione remota in un secondo momento. La chiave privata può trovarsi in qualsiasi punto del client remoto, ma deve trovarsi in una cartella a cui può accedere solo l'account utilizzato per motivi di sicurezza. Fondamentalmente, penso che non ci siano problemi se lo metti nella seguente cartella sul lato client. Se si utilizza il client OpenSSH, verrà visualizzata questa cartella per impostazione predefinita.

  • C:\Users\<ユーザー名>\.ssh

Se non riesci a creare la cartella precedente in Explorer, puoi crearla con il seguente comando.

cd C:\Users\<ユーザー名>
mkdir .ssh

Posizionamento delle chiavi pubbliche

Si tratta di un'operazione remota. Inserire la chiave pubblica creata (id_rsa.pub) nella destinazione remota. Spostare il file nella seguente cartella: <ユーザー名> è il nome dell'account utente a cui si accederà quando ci si connette effettivamente in remoto.

  • C:\Users\<ユーザー名>\.ssh

Se non si dispone di una cartella e non è possibile crearne una in Esplora risorse, è possibile creare una cartella con il comando seguente.

cd C:\Users\<ユーザー名>
mkdir .ssh

Modificare il file authorized_keys di chiave pubblica distribuito in . Questo è tutto.

A seconda dell'ambiente, è possibile che il file sia già authorized_keys disponibile. Questo può essere il caso se è stata configurata una connessione SSH per altri scopi. In tal caso authorized_keys , il file è stato registrato aprendo il file e il file con Blocco note, ecc. ed id_rsa.pub elencando il contenuto del file id_rsa.pub nella riga successiva del authorized_keys. È possibile registrare più chiavi pubbliche in authorized_keys.

Connettiti con SSH

Quando ci si connette con il comando OpenSSH

Esistono vari modi per connettersi con SSH, ma iniziamo con una connessione basata su comandi. Infatti, la connessione con il minor numero di passaggi avviene a comando. Come prerequisito, è necessario che il client OpenSSH sia installato.

Avvia lo strumento di comando di tua scelta (prompt dei comandi, PowerShell, Terminale).

Immettere il seguente comando:

Formato comando

ssh -i <秘密鍵ファイルパス> -L <ローカルの空いているポート>:127.0.0.1:3389 <接続先のユーザーアカウント名>@<接続先サーバーIPアドレス、またはホスト名>

Di seguito è riportata una spiegazione dei parametri. Impostalo in base al tuo ambiente.

Parametro variabile Nome Descrizione
ssh Una dichiarazione per l'utilizzo di SSH con OpenSSH.
-io Dichiarazione per l'utilizzo di un file di chiave privata.
< percorso del file della chiave privata> Descrivere il percorso del file di chiave privata creato. C:\Users\<ユーザー名>\.ssh Il percorso è facoltativo. In caso contrario, è necessario un percorso assoluto o relativo.
-L Questa dichiarazione specifica la porta da utilizzare localmente e in remoto quando ci si connette a una destinazione remota.
< porto franco locale> Connessione Desktop remoto utilizza in genere la porta 3389, ma è possibile connettersi utilizzando qualsiasi porta. Non importa quale numero sia, purché sia gratuito.
127.0.0.1 Si tratta dell'indirizzo IP dell'host che riconosce la posizione di connessione della destinazione remota. Fondamentalmente, 127.0.0.1 va bene.
3389 Il numero di porta da utilizzare nella destinazione remota. La destinazione remota è in genere collegata dalla porta 3389 con una connessione desktop remoto, quindi può essere lasciata così com'è.
< nome dell'account utente a cui si desidera connettersi> Specificare l'account a cui si desidera connettersi nella destinazione remota.
< indirizzo IP o il nome host del server a cui connettersi> Specifica il server di destinazione remoto.

Esempio di input

ssh -i id_rsa -L 13389:127.0.0.1:3389 TestUser@52.140.221.194

La prima volta, ti verrà richiesto un tasto, quindi yes digita e premi Invio.

Se è stata impostata una passphrase per la chiave privata, è necessario immetterla.

Di seguito sarà in uno stato connesso. È possibile vedere che viene visualizzato l'utente sul lato server, non il client. Mentre questa finestra è visualizzata, è connessa, quindi non chiuderla. Se lo chiudi, la connessione verrà interrotta.

Quando ci si connette con PuTTY

Qui, proveremo a connetterci a SSH con uno strumento chiamato PuTTY.

Conversione della chiave privata

Innanzitutto, se si utilizza PuTTY, sarà necessario convertire la chiave privata. Penso che ci sia "puttygen .exe" nello strumento allegato, quindi per favore avvialo.

Seleziona "Conversioni -> Chiave di importazione" dal menu.

Seleziona la chiave privata che hai creato, in questo caso "id_rsa".

Se è stata impostata una passphrase, immetterla.

Seleziona "File -> Salva chiave privata" dal menu.

「. .ppk".

Una volta creato, il gioco è fatto.

Configurazione di PuTTY

Avviare putty.exe.

Immettere l'indirizzo IP dell'ambiente a cui si desidera connettersi. Se disponi di un dominio, puoi connetterti con un nome di dominio.

Seleziona Connessione -> dati dal menu a sinistra. Nel campo Nome utente accesso automatico, immettere il nome dell'account dell'ambiente a cui si desidera connettersi.

Dal menu a sinistra, seleziona Connessione -> SSH -> Tunnel. Inseriscili nel campo di immissione sottostante e fai clic sul pulsante "Aggiungi".

Nome parametro Valore Note
Porta di origine 13389 Qualsiasi porto franco andrà bene. Lo userò più tardi
Destinazione 127.0.0.1:3389

Una volta aggiunto, dovrebbe essere simile a questo:

Quindi, seleziona "Connessione -> SSH -> Auth -> Cledentioals" dal menu a sinistra e fai clic sul pulsante Sfoglia per "File di chiave privata per l'autenticazione".

Selezionare la chiave privata salvata.

Seleziona "Sessione" nel menu a sinistra, inserisci un nome a tua scelta per Salva sessioni e fai clic sul pulsante Salva. Dalla prossima volta in poi, va bene se si carica questa impostazione.

Dopo aver confermato il salvataggio, fare clic sul pulsante "Apri".

Quando ci si connette per la prima volta, verrà visualizzata la seguente schermata. Fare clic sul pulsante Accetta.

Verrà visualizzata una schermata simile a un prompt dei comandi. Se si dispone di una passphrase per la chiave privata, immetterla.

Se il contenuto del display cambia come mostrato di seguito, verrà connesso. È possibile vedere che viene visualizzato l'utente sul lato server, non il client. Mentre questa finestra è visualizzata, è connessa, quindi non chiuderla. Se lo chiudi, la connessione verrà interrotta.

Effettuare una connessione desktop remoto con SSH

Ora, creiamo una connessione desktop remoto mentre siamo connessi con SSH.

Quando ci si connette, la parte del computer non è l'indirizzo remoto effettivo, ma "localhost:< > il nome della porta specificato nella connessione SSH". Nell'esempio, è stato specificato 13389, quindi qui ci connetteremo a "localhost:13389".

Se viene visualizzata la schermata di autenticazione, è possibile giudicare che la connessione è completa. Inserisci il tuo nome utente e password per connetterti.

Se riesci a connetterti in questo modo, ci sei riuscito.

Disabilita le normali connessioni desktop remoto nelle impostazioni del firewall

Al momento dell'elemento precedente, ora puoi connetterti con un desktop remoto utilizzando SSH. Tuttavia, in questo stato, "Connessione desktop remoto tramite SSH" è stata aggiunta solo a "Connessione desktop remoto normale". In termini di sicurezza, non aggiunge nulla. Quindi la prossima cosa da fare è impedire una "normale connessione desktop remoto".

Se effettui questa impostazione, non sarai in grado di connetterti ad eccezione di "connessione desktop remoto tramite SSH", quindi se pasticci con le impostazioni, potresti non avere i mezzi per connetterti da remoto. Pertanto, assicurati di verificare in anticipo che la "connessione desktop remoto tramite SSH" sia possibile ed essere in grado di gestire l'ambiente remoto con altri mezzi anche se il client a cui stai tentando di connetterti scompare.

Qui, configurare le impostazioni del firewall in "Connessione desktop remoto tramite SSH". Questo perché se si esegue l'operazione con la "normale connessione desktop remoto", questa verrà disconnessa nel momento in cui si imposta il firewall.

Visualizza Windows Defender Firewall con sicurezza avanzata. A seconda della versione di Windows, la posizione del display può variare, quindi visualizzarla in base a tale versione.

Seleziona Regole in entrata dal menu a sinistra.

Nell'elenco centrale, trova "Desktop remoto - Modalità utente (TCP In)" e apri le sue proprietà.

Selezionare la scheda Ambito, modificare l'indirizzo IP locale in Questi indirizzi IP e fare clic sul pulsante Aggiungi.

Immettere 127.0.0.1 e fare clic sul pulsante OK. In questo modo si impediranno le connessioni desktop remoto da qualsiasi posizione diversa dalla versione 127.0.0.1. 127.0.0.1 è l'indirizzo IP che punta al computer. Se inserisci il valore sbagliato, potresti non essere in grado di connetterti da qualsiasi luogo, quindi fai attenzione.

Fare clic sul pulsante OK per confermare.

Per il momento, questa da sola è una contromisura, ma impostiamo anche "Desktop remoto - Modalità utente (Ricezione UDP)".

Verifica che non sia possibile connettersi in remoto con qualcosa di diverso da SSH

A questo punto, prova a stabilire una connessione desktop remoto da un altro PC che non utilizza SSH.

Se riesci a connetterti, verrà visualizzata la schermata di autenticazione. Va bene se puoi confermare che la connessione non può essere effettuata come mostrato di seguito.

Sommario

Con l'ultimo Windows, è ora facile introdurre un server SSH. Aggiungendo le impostazioni, ora puoi aumentare facilmente la sicurezza della tua connessione desktop remoto. Tuttavia, poiché è responsabile solo delle misure di sicurezza in Windows stesso, Se vuoi renderlo più sicuro, penso che sia preferibile impostare un server SSH o un firewall separato prima di connetterti a Windows.

Inoltre, è possibile impostare strettamente la sicurezza utilizzando SSH, ma quando è troppo difficile, nessuno può connettersi a causa di un errore operativo. Fai attenzione a non finire con quello.