Saya sentiasa kecewa dengan menyambung ke mesin Windows. Tidak, saya bukan lawan mahupun penyokong Microsoft dan produk mereka. Setiap produk wujud untuk tujuannya sendiri, tetapi bukan itu maksudnya.
Ia sentiasa menyakitkan bagi saya untuk menyambung ke pelayan Windows, kerana sambungan ini sama ada dikonfigurasikan melalui satu tempat (hello WinRM dengan HTTPS) atau tidak berfungsi dengan sangat stabil (hello RDP ke mesin maya di luar negara).
Oleh itu, secara tidak sengaja terjumpa projek itu Win32-OpenSSH, saya memutuskan untuk berkongsi pengalaman persediaan saya. Mungkin alat ini akan menyelamatkan seseorang daripada banyak saraf.
Penjelasan: applet New-NetFirewallRule digunakan pada Windows Server 2012 dan lebih baru. Dalam sistem tertua (atau desktop) anda boleh menggunakan arahan:
Dan kemudian kami menyediakannya sshd_config, yang akan kami letakkan C:Data Program. Sebagai contoh:
PasswordAuthentication no
PubkeyAuthentication yes
Dan buat direktori dalam folder pengguna .ssh, dan di dalamnya fail kunci_benar. Kami menulis kunci awam di sana.
Penjelasan penting: hanya pengguna di dalam direktori mana fail itu berada harus mempunyai hak untuk menulis ke fail ini.
Tetapi jika anda menghadapi masalah dengan ini, anda sentiasa boleh mematikan semakan hak dalam konfigurasi:
StrictModes no
By the way, dalam C:Program FilesOpenSSH terdapat 2 skrip (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), yang sepatutnya tetapi tidak diwajibkan untuk menetapkan hak, termasuk dengan kunci_benar, tetapi atas sebab tertentu mereka tidak mendaftar.
Jangan lupa untuk memulakan semula perkhidmatan SSHD selepas menggunakan perubahan.
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>
Kebaikan/keburukan subjektif.
Kelebihan:
Pendekatan standard untuk menyambung ke pelayan. Apabila terdapat sedikit mesin Windows, adalah sangat menyusahkan apabila:
Jadi, di sini kita pergi melalui ssh, dan di sini kita menggunakan rdp,
dan secara amnya, amalan terbaik dengan benteng adalah pertama terowong ssh, dan RDP melaluinya.
Mudah disediakan Saya rasa ini jelas.
Kelajuan sambungan dan kerja dengan mesin jauh Tiada cangkerang grafik, menjimatkan kedua-dua sumber pelayan dan jumlah data yang dihantar.
Cons:
Tidak menggantikan RDP sepenuhnya. Tidak semuanya boleh dilakukan dari konsol, malangnya. Saya maksudkan situasi di mana GUI diperlukan.