Windows 10 Linux Alt Sistemi SSH istemcisi Kaynak geçici olarak kullanılamıyor


25

Windows 10 Linux Alt Sistemi içindeki uzak sunucuma ssh yapmaya çalışıyorum. MS Windows 10 Home Insider Preview 14366 derlemesini kullanıyorum.

Komut isteminde, şunu yazıyorum:

ssh user@domain.com

Ssh komutunu yazdıktan birkaç saniye sonra şu mesajı alıyorum:

ssh: host domain.com bağlantı noktasına bağlan 22: Kaynak geçici olarak kullanılamıyor

Git Bash içinde Putty kullanarak ssh kullanarak başarılı bir şekilde bağlanabiliyorum.

Bu, sorunun yerel bilgisayarımda ve daha spesifik olarak Linux Alt Sisteminde olduğuna inanmamı sağlıyor. Linux ortamıyla hala çok yeşilim ve bu mesajı nasıl yorumlayacağından emin değilim. Hangi kaynak kullanılamıyor ve kullanılabilir hale getirmek için ne yapmalıyım?


İlk tahmin: Windows Güvenlik Duvarı? ps> ve süper kullanıcı hoş geldiniz :) Google biraz yerine çatal ile ilgili görünüyor. Lütfen yayını düzenleyin ve size bu hatayı veren komut satırını ekleyin.
Hastur


AFAIK Linux alt sistemi yalnızca bu sürümde, 'normal' Windows 10'da değil, çünkü Windows 10'un Insider Preview sürümünü kullandığınızı kontrol edin. Aksi takdirde belki Cygwin kullanıyorsunuz?
gogoud

@ggoud - Soruyu işletim sistemini içerecek şekilde güncelledim. Gerçekten de Insider Önizleme derlemesidir.
kell

2
Ben de bu sorunu yaşıyorum. Ssh tarafından desteklenen gitveapt-get
scicalculator

Yanıtlar:


10

Anlayabildiğim kadarıyla, bu WSL'de bir hata. Umarım, Microsoft bunu bir sonraki derlemede düzeltir. Ama şimdilik, bu biraz çirkin hack'i kullanabiliriz.

Güncelleme # 1 : Kesinlikle bir hata. Bulunan bu sorunu Github. Eğer tüm bunlardan geçmek istemiyorsanız, kabuğun yeniden başlatılması için önerilen geçici çözüm benim için de işe yarıyor.

TL; DR SSH yapılandırmanızı SONLANDIRmak için bunu ekleyin (genellikle adresinde bulunur ~/.ssh/config):

Host *
    ProxyCommand nc %h %p %r

Neden çalışıyor: SSH sorunumuz bir güvenlik duvarı sorunu değil ncve telnetaynı ana bilgisayar ve bağlantı noktasında çalışıyor (deneyin telnet <host> <port>veya nc <host> <port>: gibi bir şey görmelisiniz SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.7). Bunu kendi yararımıza kullanabiliriz.

SSH, standart girdi alan ve ProxyCommandseçenek üzerinden sunucunun bağlantı noktasına gönderen proxy'lerin kullanılmasına izin verir . Bu, normalde, bazen atlama ana bilgisayarı olarak adlandırılan bir arasında geçişli SSH sunucusu kullanarak ağları korumalı bir ana bilgisayara tünellemek için kullanılır ( daha fazla bilgi için bu bağlantıya bakın ).

Bu saldırı, SSH'ye atlama ana bilgisayarı barındırmayan bir proxy kullanmasını söyler. Böylece, tüm ağ kaynağı tahsisini çalıştıran Netcat'e iterek SSH'nin başarısız TCP kaynakları dağıtımını aşar. SSH, SSH işini herhangi bir ağ bağlantısı olmadan yapar ve Netcat, ham veriyi bir TCP bağlantısı üzerinden SSH sunucusuna gönderir.

UYARI: Bu ProxyCommand, tüm ana bilgisayarlar için değiştirildiğinden, kullanılan diğer SSH yapılandırma ana bilgisayarlarıyla nasıl etkileşime girdiğini bilmiyorum ProxyCommand. Bunu test edebileceğim birkaç sunucum var ve bu cevabı sonuçlarla güncelleyeceğim. Zararlı yan etkilerin olmaması ihtimali vardır, ancak bunu garanti edemem.

Güncelleme # 2: Birkaç sunucumla bazı testler yaptım ve bu işe yarıyor gibi görünüyor. Birden çok giriş uygulandığında SSH, yapılandırmadaki en üstteki girişi kullanır. Böylece, ProxyCommandbu saldırının üstünde mevcut bir hediye onu geçersiz kılar. Yeni SSH komutu yürütüldüğünde, SSH yapılandırmasını yeniden okur ve başka bir şey yoksa ProxyCommand, SSH hackimizi kullanır ProxyCommandve yalnızca "en dıştaki" SSH oturumuna uygulanmasına izin verir. Uyarı kelimesi: hack'i yapılandırma dosyasının üstüne (veya SSH'ye çalıştığınız girişin üstüne) koyarsanız, a gerektiren SSH oturumları ProxyCommanddiğerini yok sayar ProxyCommandve bunun yerine ana bilgisayarın adresini çözmeyi ve bağlanmayı dener doğrudan Netcat ile.


Detay için teşekkürler @ computergeek125. Ne yazık ki, yapılandırmayı önerilen şekilde ayarladıktan sonra bile, yine aynı iletiyi alıyorum ssh: host domain.com bağlantı noktasına bağlan 22: Kaynak geçici olarak kullanılamıyor Nc -v <host> <port> çalıştırdığımda, ayrıntılı çıktı için alıyorum aynı hata: Kaynak geçici olarak kullanılamıyor. Yanlış bir şey yapıyor olabilirim, emin değilim. Git bash kabuğunu kullanırken herhangi bir ssh sorunum olmadığı için şimdilik buna bağlı kalacağım. BTW, sistemim şimdi 14393 derlemesinde, bu nedenle, bu soru sırasında sürümde bir hata olsaydı, hala 27 sonradan oluşturulmuş bir hata.
Kell

Bu ilginç. Bu yapı hakkında biraz araştırma yapmam gerekecek. O zaman 14903 koşuyordum (şu an 14905'e kadar). Sahip olduğum yapıda düzelttikleri bir şey olabilir.
computergeek125

SSH yapılandırmasını nasıl düzenlerim? Windows konsolunun bash'ında vi ~/.ssh/configboş bir dosya açan denedim . Komutlarını yapıştırdım ama kurtarmaya çalıştığımda (esc ->: -> wq) bana söylüyor"~/.ssh/config" E212: Cannot open file for writing
Dan

Tamam, bu garip. Hangi Windows sürümünü çalıştırıyorsunuz ve çıktısı ls -al ~/.sshnedir?
computergeek125

3

Bu da benim için bir sorundu, benim (Symantec) güvenlik duvarımın bash'tan tüm internet trafiğini engellediği ortaya çıktı.

Süreci tanımayan 3. taraf güvenlik duvarı sağlayıcıları ile ilgili genel bir sorun gibi görünüyor:

https://github.com/Microsoft/BashOnWindows/issues/809

Güvenlik duvarımı devre dışı bıraktığımda iyi çalıştı. Şu anda daha iyi bir çözüm bulamıyorum.



0

Gelecekte başvurmak üzere, Nginx'i yüklediğinizde, varsayılan olarak "Kaynak geçici olarak kullanılamıyor" hata iletisiyle SSH'yi varsayılan olarak engeller ...

sudo ufw izin ver ssh


Windows 10'un bir güvenlik duvarı vardır. Bunu neden önerdin?
Biswapriyo

Aynı sorunları olan gelecekteki kullanıcılar için de aynı sorunu yaşadığımı ve
Nginx'in
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.