Σε αυτό το άρθρο, θα σας δείξουμε πώς να ρυθμίσετε το OpenSSH στα Windows 10 και να συνδεθείτε σε αυτά μέσω SSH, χρησιμοποιώντας το Putty ή οποιοδήποτε άλλο πρόγραμμα-client SSH.
Οι πιο πρόσφατες εκδόσεις των Windows 10 περιλαμβάνουν έναν ενσωματωμένο διακομιστή SSH και ένα client που βασίζονται στο OpenSSH. Αυτό σημαίνει ότι πλέον μπορείτε να συνδεθείτε με τα Windows 10 από μακρυά, χρησιμοποιώντας οποιονδήποτε client SSH, όπως σε μία διανομή Linux. Πάμε να δούμε το πως.
Βήμα 1: Βεβαιωθείτε ότι η έκδοση των Windows 10 είναι 1809 ή νεότερη. Ο ευκολότερος τρόπος για να το κάνετε αυτό είναι να ανοίξετε ένα παράθυρο του command prompt και να εκτελέσετε την εντολή:
winver
Σημείωση: Εάν έχετε εγκαταστήσει μια παλαιότερη έκδοση των Windows 10, μπορείτε να την ενημερώσετε μέσω του Windows Update ή χρησιμοποιώντας μια εικόνα ISO με μια νεότερη έκδοση των Windows 10. Εάν δεν θέλετε να ενημερώσετε την έκδοση των Windows 10, μπορείτε να εγκαταστήσετε χειροκίνητα το Win32-OpenSSH port για Windows από το GitHub (https://github.com/PowerShell/Win32-OpenSSH) και να αποφύγετε το Βήμα 2.
Βήμα 2: Εγκαταστήστε τον διακομιστή OpenSSH στα Windows 10 μέσω του πίνακα ρυθμίσεων:
Μεταβείτε στις Ρυθμίσεις > Εφαρμογές > Προαιρετικές δυνατότητες.
Κάντε κλικ στην επιλογή + Προσθήκη δυνατότητας, κυλίστε την λίστα προς τα κάτω και βρείτε το Διακομιστής OpenSSH ( διακομιστής ασφαλούς κελύφους (SSH) που βασίζεται σε OpenSSH, για ασφαλή διαχείριση κλειδιών και πρόσβαση από απομακρυσμένα μηχανήματα).
Κάντε κλικ επάνω του και πατήστε το πλήκτρο “Εγκατάσταση”
Μπορείτε επίσης να εγκαταστήσετε το διακομιστή sshd χρησιμοποιώντας το PowerShell:
Add-WindowsCapability -Online -Name OpenSSH.Server*
Ή χρησιμοποιώντας το DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
Εάν θέλετε να βεβαιωθείτε ότι ο διακομιστής OpenSSH είναι εγκατεστημένος, ανοίξτε ένα παράθυρο του PowerShell και εκτελέστε την ακόλουθη εντολή:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Server*'
Βήμα 3: Ελέγξτε την κατάσταση των υπηρεσιών ssh-agent και sshd χρησιμοποιώντας την εντολή του PowerShell Get-Service :
Get-Service -Name *ssh*
Βήμα 4: Όπως μπορείτε να δείτε, και οι δύο υπηρεσίες βρίσκονται σε κατάσταση διακοπής και δεν προστίθενται στη λίστα αυτόματης εκκίνησης. Για να ξεκινήσετε τις υπηρεσίες και να ρυθμίσετε την αυτόματη εκκίνηση για αυτές, εκτελέστε τις ακόλουθες εντολές, μία προς μία:
Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic' Start-Service ‘ssh-agent' Set-Service -Name ‘ssh-agent' -StartupType 'Automatic'
θα πρέπει επίσης να επιτρέψετε τις εισερχόμενες συνδέσεις στη θύρα TCP 22 στο Τείχος προστασίας του Windows Defender (αν το έχετε ενεργοποιήσει):
netsh advfirewall firewall add rule name=”SSHD service” dir=in action=allow protocol=TCP localport=22
Βήμα 5: Τώρα μπορείτε να συνδεθείτε στα Windows 10 χρησιμοποιώντας οποιονδήποτε client SSH. Για να συνδεθείτε από το Linux, χρησιμοποιήστε την εντολή:
ssh -p 22 [email protected]
όπου admin βάλτε το τοπικό χρήστη των Windows στον οποίο θέλετε να συνδεθείτε και όπου 192.168.1.90 βάλτε την ΤΟΠΙΚΗ IP διεύθυνση του υπολογιστή σας Windows 10.
Σημείωση: Το παραπάνω παράδειγμα αναφέρεται σε μία σύνδεση εντός ενός τοπικού ιδιωτικού δικτύου (intranet). Αν θέλετε να συνδεθείτε από άλλο δίκτυο θα πρέπει να κάνατε ρυθμίσεις στο router σας ώστε η ζήτηση στην θύρα 22 να οδηγείστε στον συγκεκριμένο Windows υπολογιστή, καθώς και να ξέρετε κάθε στιγμή την εξωτερική IP που σας έχει δώσει ο πάροχός σας.
Μετά από μία επιτυχημένη σύνδεση θα ανοίξει ένα νέο παράθυρο γραμμής εντολών των Windows.
Τρικ: Για να τρέξετε την κονσόλα PoweShell αντί για το command prompt (cmd.exe) κατά τη σύνδεση μέσω SSH στα Windows 10, πρέπει να εκτελέσετε την ακόλουθη εντολή στα Windows 10 (κάτω από λογαριασμό διαχειριστή):
New-ItemProperty -Path “HKLM:\SOFTWARE\OpenSSH” -Name DefaultShell -Value “C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe” -PropertyType String –Force
Έτσι αλλάζετε το προεπιλεγμένο κέλυφος OpenSSH στην registry. Τώρα, όταν συνδέεστε σε Windows μέσω SSH, θα δείτε αμέσως το μήνυμα προτροπής του PowerShell αντί για cmd.exe.
Εάν θέλετε να χρησιμοποιήσετε έλεγχο ταυτότητας ssh βάσει κλειδιών αντί για έλεγχο ταυτότητας κωδικού πρόσβασης, πρέπει να δημιουργήσετε ένα κλειδί χρησιμοποιώντας το ssh-keygen στον πελάτη σας.
Στη συνέχεια, το περιεχόμενο του id_rsa.pub αρχείο πρέπει να αντιγραφεί στο αρχείο C:\Users\Admin\.ssh\authorized_keys στα Windows 10.
Μετά από αυτό, μπορείτε να συνδεθείτε από τον υπολογιστή-client των Linux στα Windows 10 χωρίς κωδικό πρόσβασης. Χρησιμοποιήστε την εντολή:
ssh -l [email protected]
Μπορείτε να διαμορφώσετε διάφορες ρυθμίσεις του διακομιστή OpenSSH στα Windows, χρησιμοποιώντας το αρχείο διαμόρφωσης %%programdata%\ssh\sshd_config .
Για παράδειγμα, μπορείτε να απενεργοποιήσετε τον έλεγχο ταυτότητας με κωδικό πρόσβασης και να αφήσετε μόνο εξουσιοδότηση βάσει κλειδιού με:
PubkeyAuthentication yes PasswordAuthentication no