Menemukan tutorial untuk itu dengan menilai:
Ini pada awalnya dibahas dan disortir oleh pengguna github imjakey, fpqc, qris, therealkenc, Manouchehri, dan aseering (sendiri) di sini:
https://github.com/Microsoft/BashOnWindows/issues/612
Perhatikan bahwa menjalankan sshd memiliki implikasi keamanan. Sampai model keamanan WSL memiliki waktu lebih lama untuk dipanggang, Anda harus mengasumsikan bahwa siapa pun yang dapat ssh ke dalam kotak Windows Anda memiliki izin untuk melakukan perintah apa pun sebagai pengguna Windows yang menjalankan sshd, terlepas dari izin tingkat Linux. (Izin mungkin lebih ketat daripada yang dalam prakteknya, tetapi model keamanan awal WSL tidak dimaksudkan untuk menjadi sangat canggih.)
Mencoba untuk mengagregasi instruksi dari github:
- Hasilkan kunci host SSH dengan menjalankan
sudo dpkg-reconfigure
openssh-server
bash shell
- Jalankan
sudo nano /etc/ssh/sshd_config
; edit UsePrivilegeSeparation yes
baris untuk dibaca
UsePrivilegeSeparation no
. (Ini diperlukan karena
UsePrivilegeSeparation
menggunakan chroot()
syscall, yang saat ini tidak didukung WSL.)
- Sementara masih mengedit
/etc/ssh/sshd_config
, Anda dapat memilih untuk mengubah
PasswordAuthentication no
ke PasswordAuthentication yes
. Kalau tidak, Anda harus mengatur kunci SSH.
- Simpan
/etc/ssh/sshd_config
dan keluar.
Jalankan sudo visudo
untuk mengedit file sudoers. Tambahkan baris
$USER ALL = (root) NOPASSWD: /usr/sbin/sshd -D
mengganti "$ USER" dengan nama pengguna Linux Anda. Simpan dan keluar. Jika visudo mengeluh bahwa perubahan Anda tidak valid, perbaiki sampai melaporkan bahwa itu valid; jika tidak, Anda dapat merusak sudo di sistem Anda!
- Di sisi Windows, edit firewall Windows (dan firewall pihak ketiga mana pun yang mungkin Anda jalankan) untuk mengizinkan lalu lintas masuk pada port 22. Karena ini bukan pengaturan yang sangat aman, saya sarankan hanya mengizinkan lalu lintas masuk dari rumah ( pribadi) dan jaringan domain, bukan dari Internet publik.
Buat file teks
autostartssh.vbs
di Windows yang berisi berikut ini:
set ws=wscript.createobject("wscript.shell")
ws.run "C:\Windows\System32\bash.exe -c 'sudo /usr/sbin/sshd -D'",0
- Klik dua kali pada skrip. Itu harus mulai sshd; Anda harus dapat ssh ke mesin Windows Anda.
- Buka Penjadwal Tugas Windows. Tambahkan tugas yang berjalan
autostartssh.vbs
pada boot sistem. Gunakan wscript.exe
sebagai perintah untuk menjalankan dan lokasi skrip VBS sebagai parameter.
Dan itu saja - komputer Windows Anda harus menjalankan server Linux openssh!
UsePrivilegeSeparation = yes
, kecuali bahwa seseorang juga perlu menjalankansudo /bin/mkdir -p /var/run/sshd
(untuk membuat direktori pemisahan hak istimewa) sebelum memulai sshd. Apakah WLS sekarang mendukung chroot (), apakah ada solusi di sumber openssh, atau apakah= No
pengaturan lebih merupakan rekomendasi keselamatan? Selain itu, tugas windows tampaknya hanya berfungsi untuk saya jika pengguna saya login./etc/ssh/sshd_config
yang bertuliskanPort 22
dan beralih kePort 8822
. Salah satu alasan untuk ini adalah Windows menjalankan semacam proses SSH pada 22. Saya telah melihat saran mengatakan tidak ada masalah dengan menonaktifkan itu, tapi saya merasa lebih mudah untuk hanya mengganti port WSL SSH.Saya perlu melakukan hal yang sama.
Berikut cara mem-boot subsistem Linux Ubuntu dengan semua layanan cron pada saat boot Windows & menyediakan cara untuk 'me-reboot' subsistem Linux.
Saya berhasil meng-hosting database openssh-server, nginx & mariadb di server kami.
Instal Subsistem Linux
Tempel:
Instal Ubuntu dari Windows Store.
Hapus sudo password prompt (wajib)
Tempel:
Aktifkan login kata sandi SSH (opsional)
Tempel:
Autologin Windows saat mulai (diperlukan jika Anda memiliki kata sandi atau RDP)
Telusuri ke
Buat string baru
DefaultPassword
dan tulis kata sandi pengguna sebagai nilai.Jalankan bash / cron loop saat start
linux.bat
dishell:startup
Tempel:
Tambahkan aplikasi / layanan ke startup di cron
sudo crontab -e
Tambahkan aplikasi startup seperti openssh-server, nginx, mysql, php:
Simpan dan keluar:, ctrlxlalu tekan ydan enter.
Reboot subsistem Linux tanpa me-reboot Windows
Buka bash atau SSH di
Ini akan menutup instance saat ini dan membuat yang baru menerapkan cron.
Ekstra - Instal PHP 7.1 (tidak cukup lurus ke depan)
Jalankan perintah di bawah ini untuk pengaturan standar yang cantik:
Jalankan perintah di bawah ini untuk pengaturan 'OwnCloud':
Ekstra - Instal nginx webserver
Jalankan perintah di bawah ini untuk pengaturan dasar dengan PHP7.1:
Ekstra - Instal database mysql mariadb
Jalankan perintah di bawah ini untuk server database mysql:
Saat diminta, tetapkan kata sandi pengguna basis data root.
sumber
@poma jawaban sangat bagus, dan berdasarkan apa jawaban saya. Saya ingin menambahkan beberapa peningkatan padanya, meskipun:
service
alih-alih meneleponsshd
langsung:'sudo service ssh start'
alih-alih'sudo /usr/sbin/sshd -D'
. Dengan begitu, bahkan jika Anda memanggil skrip beberapa kali, hanya akan ada paling banyak satusshd
proses. Juga, mudah untuk membunuhnya dengan skrip lain yang berjalan'sudo service ssh stop'
. Dalam file sudoers, Anda hanya perlu menggantinya/usr/sbin/sshd -D
dengan/usr/sbin/service
.sshd
langsung, menyingkirkan-D
pilihan , karena yang akan menempatkan proses di latar depan tanpa batas. Jika Anda tidak percaya kepada saya, lakukan sajatop
dan Anda akan melihatinit
dansudo
proses untuk setiap kali Anda memanggil skrip. Jangan lupa untuk menghapus-D
opsi di file sudoers juga!autostartsshd.ps1
dan paste berikut ini:bash -c 'sudo service ssh start'
. Untuk menjalankan skrip, klik kanan dan klikRun with PowerShell
.Pertanyaan stack overflow lainnya memiliki langkah serupa: /superuser//a/1114162/182590
Semoga itu bisa membantu seseorang :)
sumber
sudo service ssh start
dan kemudian menutup bash itu akan membunuh daemon ssh. Setidaknya itulah yang dilakukannya pada saat menulis panduan saya.masukkan
bash -c "echo [password] | service ssh start"
skrip startup Windows, dan gunakan kata sandi sudo Anda sendiri untuk mengganti [kata sandi]sumber
sudo
kata kunci yang diperlukan yang terkandung dalam kalimat Anda). Ini tidak berhasil. Bukan berarti Anda harus menyimpan kata sandi Anda di plaintext!@Poma dan @Hintron jawaban bagus.
Saya ingin memperluas uraian tentang poin terakhir cara menambahkan tugas ssh di Penjadwal Tugas Windows karena memerlukan pengalihan beberapa opsi:
Ini digunakan doa bash langsung. Tidak perlu membungkusnya dalam skrip vbs atau PowerShell.
Saya menggunakan perintah layanan untuk alasan yang dijelaskan @Hintron. Selain itu doa sshd langsung memberikan kesalahan
Dalam hal demikian harus ditambahkan entri ini dengan
sudo visudo
perintahJuga perhatikan bahwa di sini semua pengguna (kolom pertama) dapat memulai atau menghentikan sshd. Jika Anda hanya satu pengguna mesin Windows ini, maka itu akan baik-baik saja.
sumber
Buat file dengan nama
wsl_setup.bat
dan tambahkan konten sebagai berikutTambahkan
wsl_setup.bat
file ke folder startup windows windows-10-change-startup-appsMulai ulang dan masuk ke akun windows Anda (ya, Anda harus masuk)
sumber