GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire SSH in una macchina Windows 10 da Linux O Windows O ovunque

Ultimamente sto zitto dappertutto. I SSH in Linux da Windows utilizzando il client OpenSSH integrato che Windows 10 ha distribuito per anni di cui non eri a conoscenza.;) Non hai bisogno di Putty in SSH con Windows (a meno che non ti renda felice, quindi stucco, amico mio.)

Aggiunta del server OpenSSH a Windows

Da un PowerShell amministrativo vedrò quali elementi OpenSSH ho abilitato. Posso farlo anche digitando "Caratteristiche di Windows" dal menu Start.

> Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Name : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

Sembra che io abbia il client OpenSSH ma non il server. Posso SSH da Windows, ma non per.

Lo aggiungerò con un comando simile con la versione super stravagante ma apparentemente necessaria alla fine:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Avvio di SSHD su Windows as a Service

Una volta terminato (e ovviamente puoi eseguirlo anche con OpenSSH.Client per ottenere entrambi i lati se non l'hai fatto), puoi avviare il server SSH (come servizio Windows) con questo, quindi assicurati che sia in esecuzione.

Start-Service sshd
Get-Service sshd

Poiché si tratta di un servizio Windows, puoi vederlo come "OpenSSH SSH Server" in services.msc e impostarlo per l'avvio automatico all'avvio, se lo desideri. Puoi farlo di nuovo, da PowerShell se preferisci

Set-Service -Name sshd -StartupType 'Automatic'

Ricorda che eseguiamo SSH sulla porta 22, quindi a questo punto avrai una regola del firewall in arrivo su 22. Sta a te essere consapevole della sicurezza. Forse consenti SSHing nella tua macchina Windows solo con chiavi pubbliche (senza password) o forse non ti dispiace. Basta essere consapevoli, dipende da te, non da me.

Ora, da qualsiasi macchina Linux (o Windows) posso SSH nella mia macchina Windows come un professionista! Nota che sto utilizzando il suffisso di dominio .local per assicurarmi di non avere una macchina sulla mia VPN (rimanendo nella mia sottorete locale)

$ ssh [email protected]
Microsoft Windows [Version 10.0.19041.113]
(c) 2020 Microsoft Corporation. All rights reserved.

scott@IRONHEART C:\Users\scott>pwsh
PowerShell 7.0.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

Loading personal and system profiles took 1385ms.
⚡ scott@IRONHEART>

Nota che quando sono entrato in SSH in Windows ho ottenuto la shell cmd.exe predefinita. Ricorda anche che c'è una differenza tra una console, un terminale e una shell! Posso ssh con qualsiasi terminale in qualsiasi macchina e finire in qualsiasi shell. In questo caso, il DEFAULT era cmd.exe, che non è ottimale.

Configurazione della shell predefinita per OpenSSH in Windows

Sul mio server (la macchina Windows in cui sto utilizzando SSH) imposterò una chiave di registro per impostare la shell predefinita. In questo caso, utilizzerò PowerShell Core multipiattaforma open source. Puoi usare tutto ciò che ti rende felice.

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\PowerShell\7\pwsh.exe" -PropertyType String -Force

Ora quando ssh nella mia macchina Windows da altrove (anche dal mio iPad!) ottengo la shell che voglio:

$ ssh [email protected]
PowerShell 7.0.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

Loading personal and system profiles took 1854ms.
⚡ scott@IRONHEART>

Ancora meglio se volessi aggiungere una voce di menu (profilo) al mio Terminale Windows con una voce per il mio computer Windows che mi acceda automaticamente da altrove usando le chiavi pubbliche, potrei farlo anche io!

Inoltre, ora che è impostato, posso utilizzare WinSCP (disponibile su Window Store) e scp (Secure Copy) per trasferire i file.

Ovviamente puoi anche usare WinRM o PowerShell Remoting su SSH ma per la mia piccola rete interna ho trovato questo meccanismo semplice e pulito. Ora il mio zittire è aconfessionale!

Sponsor: Hai già provato a sviluppare in Rider? Questo IDE multipiattaforma veloce e ricco di funzionalità migliora il codice per le applicazioni .NET, ASP.NET, .NET Core, Xamarin e Unity su Windows, Mac e Linux.


Linux
  1. Come eseguire l'avvio da un'unità USB in VirtualBox su Linux

  2. Come eseguire il desktop remoto da Windows a desktop Linux utilizzando XRDP

  3. Come connettersi a una macchina Windows remota da Lubuntu Linux usando Remmina

  4. Ssh:accesso al server Linux dalla macchina Windows in modalità grafica tramite Ssh?

  5. Linux:come accedere a Tty da Ssh?

Come SSH in una directory particolare su Linux

Come SSH nel tuo server Linux da Windows

Come mi collego a Linux VPS tramite SSH da Linux e Windows OS?

IL MODO FACILE come eseguire SSH in Bash e WSL2 su Windows 10 da un computer esterno

Come eseguire SSH in WSL2 su Windows 10 da un computer esterno

Come impostare un profilo di scheda in Terminale di Windows per SSH automaticamente in una scatola Linux