Πάντα με απογοήτευε η σύνδεση σε μηχανήματα Windows. Όχι, δεν είμαι ούτε αντίπαλος ούτε υποστηρικτής της Microsoft και των προϊόντων της. Κάθε προϊόν υπάρχει για τον δικό του σκοπό, αλλά δεν πρόκειται για αυτό.
Ήταν πάντα εξαιρετικά επώδυνο για μένα να συνδέομαι σε διακομιστές Windows, επειδή αυτές οι συνδέσεις είτε ρυθμίζονται σε ένα μέρος (γεια σου WinRM με HTTPS) είτε δεν λειτουργούν πολύ σταθερά (γεια σου RDP σε εικονικές μηχανές στο εξωτερικό).
Επομένως, έχοντας κατά λάθος συναντήσει το έργο Win32-OpenSSH, αποφάσισα να μοιραστώ την εμπειρία εγκατάστασης μου. Ίσως αυτό το εργαλείο θα σώσει κάποιον από πολλά νεύρα.
Διευκρίνιση: applet Νέος-NetFirewallRule χρησιμοποιείται στον Windows Server 2012 και μεταγενέστερη έκδοση. Στα παλαιότερα συστήματα (ή στην επιφάνεια εργασίας) μπορείτε να χρησιμοποιήσετε την εντολή:
Διευκρίνιση: Πρέπει να καθορίσετε μια απόλυτη διαδρομή.
Ποιο είναι το επόμενο;
Και μετά το ρυθμίσαμε sshd_config, που θα τοποθετήσουμε Γ: Δεδομένα προγράμματος. Για παράδειγμα:
PasswordAuthentication no
PubkeyAuthentication yes
Και δημιουργήστε έναν κατάλογο στο φάκελο χρήστη .ssh, και σε αυτό το αρχείο authorized_keys. Σημειώνουμε εκεί τα δημόσια κλειδιά.
Σημαντική διευκρίνιση: μόνο ο χρήστης στον κατάλογο του οποίου βρίσκεται το αρχείο θα πρέπει να έχει το δικαίωμα εγγραφής σε αυτό το αρχείο.
Αλλά εάν αντιμετωπίζετε προβλήματα με αυτό, μπορείτε πάντα να απενεργοποιήσετε τον έλεγχο δικαιωμάτων στη διαμόρφωση:
StrictModes no
Παρεμπιπτόντως, στο C:Program FilesOpenSSH υπάρχουν 2 σενάρια (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), τα οποία θα έπρεπε, αλλά δεν είναι υποχρεωμένα να καθορίζουν δικαιώματα, συμπεριλαμβανομένης της authorized_keys, αλλά για κάποιο λόγο δεν εγγράφονται.
Μην ξεχάσετε να επανεκκινήσετε την υπηρεσία sshd μετά για να εφαρμόσετε τις αλλαγές.
ru-mbp-666:infrastructure$ ssh [email protected] -i ~/.ssh/id_rsa
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS C:UsersAdministrator> Get-Host
Name : ConsoleHost
Version : 5.1.14393.2791
InstanceId : 653210bd-6f58-445e-80a0-66f66666f6f6
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : en-US
CurrentUICulture : en-US
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled : True
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
PS C:UsersAdministrator>
Υποκειμενικά πλεονεκτήματα/μειονεκτήματα.
Πλεονεκτήματα:
Τυπική προσέγγιση για τη σύνδεση με διακομιστές. Όταν υπάρχουν λίγα μηχανήματα Windows, είναι πολύ άβολο όταν:
Έτσι, εδώ περνάμε μέσω ssh, και εδώ χρησιμοποιούμε rdp,
και γενικά, η καλύτερη πρακτική με τους προμαχώνες είναι πρώτα μια σήραγγα ssh και το RDP μέσω αυτού.
Εύκολο στη ρύθμιση Νομίζω ότι αυτό είναι προφανές.
Ταχύτητα σύνδεσης και εργασία με απομακρυσμένο μηχάνημα Δεν υπάρχει γραφικό κέλυφος, εξοικονομώντας τόσο πόρους διακομιστή όσο και την ποσότητα των μεταδιδόμενων δεδομένων.
Μειονεκτήματα:
Δεν αντικαθιστά πλήρως το RDP. Δεν γίνονται όλα από την κονσόλα, αλίμονο. Εννοώ περιπτώσεις όπου απαιτείται GUI.