Menghubungkan ke Windows melalui SSH seperti Linux
Saya selalu frustrasi saat menghubungkan ke mesin Windows. Tidak, saya bukan penentang atau pendukung Microsoft dan produk mereka. Setiap produk ada untuk tujuannya masing-masing, tapi bukan itu intinya.
Selalu sangat menyakitkan bagi saya untuk terhubung ke server Windows, karena koneksi ini dikonfigurasi melalui satu tempat (halo WinRM dengan HTTPS) atau tidak bekerja dengan stabil (halo RDP ke mesin virtual di luar negeri).
Oleh karena itu, secara tidak sengaja menemukan proyek tersebut Win32-OpenSSH, saya memutuskan untuk berbagi pengalaman pengaturan saya. Mungkin alat ini akan menyelamatkan banyak saraf seseorang.
Klarifikasi: applet Aturan NetFirewall Baru digunakan pada Windows Server 2012 dan yang lebih baru. Di sistem terlama (atau desktop) Anda dapat menggunakan perintah:
Dan kemudian kami mengaturnya sshd_config, yang akan kami tempatkan C: Data Program. Sebagai contoh:
PasswordAuthentication no
PubkeyAuthentication yes
Dan buat direktori di folder pengguna .ssh, dan di dalamnya ada file otorisasi_keys. Kami menuliskan kunci publik di sana.
Klarifikasi penting: hanya pengguna yang direktorinya berisi file yang berhak menulis ke file ini.
Tetapi jika Anda mempunyai masalah dengan ini, Anda selalu dapat mematikan pemeriksaan hak di konfigurasi:
StrictModes no
Ngomong-ngomong, di C:Program FilesOpenSSH ada 2 skrip (PerbaikiHostFilePermissions.ps1, PerbaikiUserFilePermissions.ps1), yang seharusnya tetapi tidak wajib untuk menetapkan hak, termasuk dengan otorisasi_keys, tapi entah kenapa mereka tidak mendaftar.
Jangan lupa untuk me-restart layanan sshd setelah menerapkan 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>
Pro/kontra subyektif.
Pro:
Pendekatan standar untuk menghubungkan ke server. Ketika mesin Windows hanya sedikit, akan sangat merepotkan bila:
Jadi, di sini kita menggunakan ssh, dan di sini kita menggunakan rdp,
dan secara umum, praktik terbaik dengan bastion pertama-tama adalah terowongan ssh, dan RDP melaluinya.
Mudah diatur Saya pikir ini sudah jelas.
Kecepatan koneksi dan bekerja dengan mesin jarak jauh Tidak ada shell grafis, menghemat sumber daya server dan jumlah data yang dikirimkan.
Cons:
Tidak sepenuhnya menggantikan RDP. Sayangnya, tidak semuanya bisa dilakukan dari konsol. Maksud saya situasi di mana GUI diperlukan.