GNU/Linux >> Belajar Linux >  >> Linux

CARA MUDAH cara SSH ke Bash dan WSL2 di Windows 10 dari mesin eksternal

Ini adalah posting blog yang menarik tentang Cara SSH ke WSL2 di Windows 10 dari mesin eksternal. Membacanya. Ketahui cara kerjanya. Pelajari itu. DAN JANGAN LAKUKAN KARENA TERLALU KOMPLEKS .

JANGAN LAKUKAN INI. Tidak apa-apa. Berhasil. Tapi itu barok. Anda meneruskan port ke subnet lokal kecil yang di-VM, Anda berurusan dengan alamat IP WSL2 yang berubah, Anda harus menjaga VM Anda tetap berjalan, dan Anda biasanya mencoba meluncur ke atas bukit.

Inilah masalahnya. Dalam postingan tersebut - yang seharusnya tidak Anda lakukan - Anda mematikan Windows Firewall untuk port Anda, meneruskan ke subnet internal, dan kemudian membiarkan WSL mengambil alih.

TAPI! Windows 10 sudah tahu cara menerima koneksi SSH. Faktanya, OpenSSH dikirimkan sebagai "Fitur sesuai Permintaan" selama bertahun-tahun. Masalahnya adalah Anda (pengalih Mac dan Linux) tidak menyukai shell default - PowerShell.

Jadi mengapa tidak mengubah shell Windows default untuk SSH ke Bash WSL2?

Boom. Sekarang Anda tidak memiliki penerusan porta, firewall hanya terbuka untuk satu proses, dan instans WSL2 Anda dimulai saat masuk. Secara harfiah yang terbaik dari semua dunia.

Bagaimana Anda mengatur SSH ke dalam WSL2 pada mesin Windows 10 Anda

Pertama, buka prompt PowerShell admin (menu Start, ketik PowerShell, tahan ctrl+shift, dan tekan enter) ketik ini:

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

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

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

Lihat bagaimana saya memiliki Klien dan bukan Server OpenSSH? Tambahkan:

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

Sekarang mulai layanan SSHD, atau atur untuk memulai secara otomatis:

Start-Service sshd
Get-Service sshd

atau otomatis:

Set-Service -Name sshd -StartupType 'Automatic'

Mengonfigurasi Shell Default untuk OpenSSH di Windows 10

Di server saya (mesin Windows tempat saya menggunakan SSHing) saya akan mengatur kunci registri untuk mengatur shell default. Dalam hal ini, saya akan menggunakan open source lintas platform PowerShell Core. Anda dapat menggunakan apa pun yang membuat Anda bahagia dan bash WSL2 membuat saya bahagia.

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\WINDOWS\System32\bash.exe" -PropertyType String -Force

Perhatikan bahwa bash.exe dalam konteks ini memulai "wsl -d YOURDEFAULTDISTRO " jadi Anda ingin tahu apa Default Anda, dan jika Anda tidak menyukainya, ubah dengan wsl --set-default DISTRO .

PERHATIAN:Anda memerlukan PATH LENGKAP DAN BENAR dalam perintah di atas. Ini berfungsi untuk cangkang apa pun. Karena saya menggunakan bash.exe, saya memulai WSL2 secara gratis tetapi SSH dengan solusi ini menggunakan kunci SSH Windows dan auth Windows. Perhatikan bahwa saat Anda memasukkan sandi untuk autentikasi!

Lebih baik lagi jika saya ingin menambahkan item menu (profil) ke satu Terminal Windows lokal dengan entri ke ssh ke WSL saya di Mesin Windows jarak jauh saya yang secara otomatis akan memasukkan saya ke dalamnya dari tempat lain menggunakan kunci publik, saya juga bisa melakukannya!

Untuk menyimpulkan dan meringkas:

  • Pos blog ini - yang Anda baca menggunakan OpenSSH Windows dan mengautentikasi dengan Windows lalu menjalankan WSL2. WSL2 dimulai, menggunakan bash, dan Windows menangani lalu lintas TCP.
  • Pos blog lain ini - di sini - hanya memiliki port penerusan Windows, dan menggunakan OpenSSH Linux WSL2 dan mengautentikasi terhadap Linux. Windows hanya terlibat secara periferal. Alamat IP WSL2 berubah saat reboot dan Anda harus mempertahankan aturan portproxy dan aturan firewall dengan skrip yang didengarkan di akhir postingan tersebut.

Pahami apa yang Anda inginkan dan gunakan yang tepat untuk Anda.

Menikmati!

Sponsor: Bug di prod? Dapatkan ke dasarnya, cepat, dengan pencarian log produksi langsung di Seq 2020.1.


Linux
  1. Bagaimana cara mengubah direktori di Git Bash dengan Git untuk Windows?

  2. Cara SCP dari server linux ke klien Windows

  3. Bagaimana cara menempelkan ke nano dari clipboard?

  1. Cara Mudah Untuk Memeriksa Tes Kecepatan SSH

  2. Tujuan .bashrc Dan Bagaimana Cara Kerjanya?

  3. Bash + Bagaimana Cara Keluar Dari Skrip Sekunder Dan Dari Skrip Utama Pada Kedua Kalinya?

  1. Cara Masuk ke Database Postgresql dari Command-line

  2. Bagaimana Mendeteksi Jika Shell Dikendalikan Dari Ssh?

  3. Cara tercepat untuk menempelkan blok teks ke editor vi dari sumber eksternal