SSH’yi “Windows 10’da Ubuntu’da Bash” e nasıl çevirebilirim?


99

Yüklü ve çalışan, "Windows'ta Ubuntu'da Bash" bulunan Windows 10 Yıldönümü Sürümü var. Bu Ubuntu örneğinde SSH yapabilmek istiyorum, ancak openssh-server'ı kurup yapılandırdım (ve 2200 portunu dinlerken), "localhost: 2200" e ssh yapmaya çalıştığımda, "Beklenmedik bir şekilde" Sunucuyu söyledi kapalı ağ bağlantısı ".

Bunu başarıyla başarabilen var mı?

görüntü tanımını buraya girin


İşlem Hacker'ı kullanarak ve 'Ağ' sekmesine bakarak, sshd (Windows 10'da Ubuntu'da çalışıyor) 2200 yerel bağlantı noktasını dinliyor.
Mick,

ve sistemin ip adresine bağlanmayı denerseniz? Ubuntu sık sık geridönüş adreslerini pencerelerden farklı olarak eşleştirir ve 127.0.0.0/8 (genellikle 127.0.1.1) 'de ek değerler kullanır
Frank Thomas

@Ramhound: Doğru değil. Localhost, localhost ve her şey paylaşılıyor. links http://localhost/Linux alt sisteminden mükemmel şekilde başarabilir ve Windows tarafından IIS tarafından sağlanan web sayfasını görebilirsiniz. Ayrılma yok.
Sami Kuhmonen

Yanıtlar:


120

İşe aldım; İşte nasıl.

Ssh-server kaldırıldı, tekrar kuruldu ve başlatıldığından emin olun

sudo service ssh --full-restart

Kök erişimini kapattığınızdan ve config dosyasına başka bir kullanıcı eklediğinizden emin olun.

Beklendiği gibi 127.0.0.1:22 tarihinde alt sisteme bağlanmayı başardım. Umarım bu sana yardımcı olmuştur.

İşte bir ekran görüntüsü.

  1. sudo apt-get purge openssh-server
  2. sudo apt-get install openssh-server
  3. sudo nano /etc/ssh/sshd_config ve ayar yaparak kök girişine izin verme PermitRootLogin no
  4. Sonra altında yazan bir çizgi ekleyin:

    AllowUsers yourusername

    ve bir şifre kullanarak giriş yapmak istiyorsanız PasswordAuthenticationayarının yapıldığından emin olun yes.

  5. Ekleyerek / değiştirerek ayrıcalık ayrılmasını devre dışı bırakın: UsePrivilegeSeparation no

  6. sudo service ssh --full-restart

  7. PuTTY gibi bir ssh istemcisi kullanarak Linux alt sisteminize Windows'tan bağlanın.


2
Bunu yapmak zorunda değildim - garip .. ama bunun hala beta aşamasında olduğunu hatırlayın, böylece sonuçlar değişebilir
Usta Azazel

7
Ek olarak şunları yapmak zorundaydım: Hizmetler kontrol panelinden Windows 10 SSH Sunucu Broker Hizmetleri'ni Durdurun / Devre Dışı Bırakın ve ayarlayın: PubkeyAuthentication no sshdconfig içinde
math0ne

6
Ayrıca bir güvenlik duvarı kuralı eklemem gerekiyordu. Mevcut bir kural vardı, ancak bu yalnızca Windows SSH Sunucu Proxy'si içindi ve bu hizmeti durdurduğumda güvenlik duvarı 22 numaralı bağlantı noktasını trafiğe kapattı.
Pierre-Luc Paour

2
Ben de (portları değiştirmek zorunda Port 2222içinde /etc/ssh/sshd_configpencerelerin değil ssh sunucu portu 22. bağlantıyı aldı eğer dosyası)
arod

2
@ArtemRussakovskii bash penceresini kapattığınızda bütün Linux alt sistemini durdururlar ...
Sakher

27

Windows uygulaması chroot sağlamadığından / etc / ssh / sshd_config dosyasını değiştirmeniz gerekir.

UsePrivilegeSeparation no

Ayrıca useradd komutunu kullanarak bir kullanıcı oluşturmanız gerekecektir.


4
Bu adım işe yaraması için çok önemliydi.
Mick,

1
Merak ettim, bu yüzden bunu freebsd.org/cgi/man.cgi?sshd_config(5 adresinde buldum) : UsePrivilegeSeparation:
krs013

Sshd'nin (8), gelen ağ trafiğiyle baş etmek için ayrıcalıklı bir alt süreç oluşturarak ayrıcalıkları ayırıp ayırmayacağını belirtir. Başarılı bir kimlik doğrulamasından sonra, kimliği doğrulanmış kullanıcının ayrıcalığına sahip başka bir işlem oluşturulacaktır. Ayrıcalık ayrılmasının amacı, imtiyazsız süreçler içinde herhangi bir yolsuzluk içererek imtiyaz artışını önlemektir. Argüman "evet", "hayır" 'veya "sanal alan" olmalıdır. UsePrivilegeSeparation "sandbox" olarak ayarlanmışsa, ön kimlik doğrulama ayrıcalıklı olmayan işlem ek kısıtlamalara tabidir. Varsayılan "sandbox" dır.
krs013


24

Yukarıdaki komite cevapları harikaydı. Onlar için teşekkür ederim. Süper yaklaşırken, hala 127.0.0.1 problemiyle Bağlantı kapattım .

Ben buldum ve ek adımları eklenen bu yazı iyiye beni. Özellikle, baştan başlamak ve bunu ilk / ilk adım olarak eklemek ( --purge niteleyicisine dikkat edin ), sonunda bu sorundaki varyasyonumu çözdü:

sudo apt-get remove --purge openssh-server
sudo apt-get install openssh-server
sudo vi /etc/ssh/sshd_config # Change Port from 22 to 2222 (Just in case MS-Windows is using port 22; which, by the way, SSH on MS-Windows can be disabled if you want to use port 22).
sudo service ssh --full-restart

Tekrar teşekkürler, bu ekleme başkalarına yardımcı olur umarım. = :)


2
Neden aşağı oy? Bu talimatlar tek başıma belirtildiği gibi benim durumumda işe yaramadı ve yukarıdaki ek adım işe yaradı. Anlamadım.
NYCeyes,

1
"Desteklenen kimlik doğrulama yöntemi yok (sunucu gönderildi: publickey)" olarak çok farklı bir hatam oldu ve bu adımlar düzeltti.
Mike Viens

2
Nedense, Windows 2222 numaralı Bağlantı Noktasında çalıştığımı takdir etmedi. Bunu kullanan başka hiçbir işlem göstermedi ve bağlantı noktası çakışması kanıtı olmadı, ancak bağlantı noktalarını değiştirdiğimde, iş.
forresthopkinsa

2222 numaralı bağlantı noktası da benim için çalışmıyor, çalışan başka bir hizmet yok, ancak 22 adet çalışıyor; bu, birden fazla SSH bağlantısı kurmak istediğim için bir sorun.
mFeinstein

4

Master Azazel'in önerdiği ve problemi olduğu gibi her şeyi yaptım. Bağlantı noktasına bağlandığımda 22bir şifre istendi, ancak Linux alt sisteminde belirlediğim şifre çalışmadı.

1. Çözüm:
SSH bağlantı noktasını değiştirin /etc/ssh/sshd_configve alt sistemdeki SSH sunucusunu yeniden başlatın

Çözüm # 2:
Windows'un hizmet kontrol panelindeki "SSH Sunucu Aracısı Hizmetleri" ni devre dışı bırakın / durdurun ve alt sistemdeki SSH sunucusunu yeniden başlatın.


1
Bu sadece, 22 numaralı bağlantı noktasındaki pencerelerde çalışan bir şeye sahipseniz geçerlidir.
Master Azazel

3
Ofcz, varsayılan win10 kurulumumda gördüğünüz gibi 22'de çalışan bir servis vardı ...
scotty86

2

Sunucuya giriş yapmamanın nedeni, sunucudan gelen kayıtlarda:

chroot ("/ var / run / sshd"): İşlev uygulanmadı [vaiz]

Linux alt sisteminde chroot uygulanmış gibi görünmüyor ve ssh sunucusu buna ihtiyaç duyuyor, bu nedenle bağlantıya izin verilmiyor.


3
Hangisi doğru .. ama diğer cevaplar chroot gereksinimi etrafında nasıl çalışılacağını açıklıyor.
Mahmud Al-Qudsi,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.