Mac’ten WSL 2’ye SSH: VS Code kurulumu ve sorun giderme

AIRouter Aug 30, 2026

Mac’ten WSL 2’ye SSH bağlantısı için Linux dağıtımının içinde bir SSH sunucusu ve Mac’ten bu sunucuya giden bir ağ yolu gerekir. SSH’yi yalnızca Windows’a kurarsanız WSL geliştirme ortamınıza değil Windows’a bağlanırsınız.

Bu kılavuz aynı yerel ağdaki Mac ve Windows bilgisayarında Ubuntu kullanır. Örnek kullanıcı adlarını ve adresleri kendi değerlerinizle değiştirin. Sunucu tarafı kontrol listesi için WSL SSH sunucusu sorun giderme yazısına bakın.

Önce ağ yolunu seçin

Windows yapılandırması Bağlantı yolu
Varsayılan NAT ağını kullanan WSL 2 Windows LAN portunu WSL içindeki SSH portuna yönlendirin
Mirrored networking kullanan destekli Windows 11 kurulumu Doğrudan LAN erişimini sınayın ve uygun güvenlik duvarı kurallarını yapılandırın

Microsoft hem NAT’i hem mirrored networking’i belgeliyor. Mirrored networking Windows 11 22H2 ve sonraki sürümlerde kullanılabilir. Her WSL kurulumunun aynı ağ modunu kullandığını ya da mirrored networking’in hiçbir zaman çalışmadığını varsaymak doğru değildir.

1. Ubuntu içinde SSH’yi kurup başlatın

Bu komutları PowerShell’de değil, Ubuntu’da çalıştırın:

sudo apt update
sudo apt install openssh-server
sudo sshd -t
sudo service ssh start
ss -ltn | grep ':22'

Yapılandırma kontrolü hatasız tamamlanmalıdır. Son komut 22 numaralı portta bir dinleyici göstermelidir. Ubuntu systemd kullanıyorsa hizmeti sudo systemctl status ssh ile yönetebilirsiniz. Kurulum ve yapılandırma için Ubuntu OpenSSH belgelerine bakın.

Linux kullanıcı adınızı whoami ile kontrol edin. SSH bağlantısında kullanacağınız hesap budur. Sunucuyu şimdi başlatmanız, Windows yeniden başlatıldığında da başlayacağını kanıtlamaz; bağlantı çalıştıktan sonra bunu ayrıca sınayın.

2. Mac’i işe katmadan önce Windows → WSL bağlantısını sınayın

PowerShell’de dağıtımları listeleyip adresi inceleyin:

wsl -l -v
wsl -d Ubuntu hostname -I

Ardından ilgili WSL adresine bağlanın:

ssh your_linux_user@172.30.98.229

Yukarıdaki adres yalnızca örnektir. hostname -I birden çok adres verirse Ubuntu arayüzlerini inceleyin ve yönlendirmek istediğiniz ağa ait adresi kullanın. Bu bağlantı başarısızsa sorun SSH’de veya Windows ile WSL arasındadır; Mac yapılandırması oluşturmak bunu çözmez.

3. NAT modunda Windows’a ayrı bir port yönlendirin

Windows bilgisayarının LAN adresini ipconfig ile bulun. Aşağıdaki örnek 192.168.1.50 adresini kullanır ve 2222 portunu açar; böylece Windows port 22 ayrı bir Windows SSH sunucusu için kullanılabilir.

Yönetici PowerShell içinde çalıştırın:

$WindowsLanIp = '192.168.1.50'
$WslIp = ((wsl -d Ubuntu hostname -I).Trim() -split '\s+')[0]

netsh interface portproxy add v4tov4 listenaddress=$WindowsLanIp listenport=2222 connectaddress=$WslIp connectport=22

New-NetFirewallRule -DisplayName 'WSL SSH LAN 2222' -Direction Inbound -Action Allow -Protocol TCP -LocalPort 2222 -RemoteAddress LocalSubnet

netsh interface portproxy show all

Yönlendirme komutunu çalıştırmadan önce seçili WSL adresini kontrol edin. Microsoft, kural ekleme, gösterme ve silmeyi kapsayan netsh interface portproxy komutunu belgeliyor.

Windows LAN adresi ve WSL NAT adresi değişebilir. Yeniden başlatmadan sonra bağlantı kesilirse geçerli adresleri yönlendirme kuralıyla karşılaştırın. Eski kuralları biriktirmek yerine kuralı güncelleyin. Yalnızca LAN için olan bu kurulumda portu internet yönlendiricinizden dışarı açmayın.

4. macOS’tan SSH’yi sınayın

Mac’te Terminal’i açın:

ssh -p 2222 your_linux_user@192.168.1.50

Yeni bir ana makineyi kabul etmeden önce SSH host-key parmak izini doğrulayın. Başarılı oturum Linux kabuğunu açmalıdır. Doğru ortama ulaştığınızı doğrulamak için uname -a ve pwd çalıştırın.

Tekrarlı kullanım için bu kaydı Mac’in SSH yapılandırmasına ekleyin:

Host windows-wsl
    HostName 192.168.1.50
    User your_linux_user
    Port 2222

Şimdi ssh windows-wsl komutunu sınayın. Parola doğrulamasını kapatmadan önce anahtar doğrulamayı kurun ve erişim ayarlarını değiştirirken çalışan bir oturumu açık tutun.

5. VS Code’u çalışan SSH ana makinesine bağlayın

Microsoft Remote - SSH uzantısını kurun. Remote-SSH: Connect to Host… komutunu çalıştırıp windows-wsl öğesini seçin ve Linux dağıtımının içindeki bir dizini açın.

VS Code hedef makineye uzak sunucusunu kurar. Önkoşullar ve kurulum hataları için resmî Remote SSH kılavuzunu izleyin. Önce Terminal bağlantısı kurmak, ağ sorunlarını düzenleyici sorunlarından ayırır.

Mirrored networking kullanıldığında ne değişir?

Desteklenen mirrored kurulumda Mac’ten Windows makinesinin LAN adresine ve Linux SSH portuna doğrudan erişimi sınayın. Windows ve Hyper-V güvenlik duvarı ilkeleri gelen trafiği hâlâ engelleyebilir. Dar kapsamlı gelen bağlantı kuralları için Microsoft’un ağ belgelerini izleyin; güvenlik duvarını bağlantı kısayolu olarak kapatmayın.

Windows’ta çalışan bir localhost bağlantısı, başka bir bilgisayarın hizmete erişebildiğini göstermez. Testi Mac’in kendisinden yapın.

Hatanın olduğu katmanı giderin

Belirti Sonraki kontrol
Bağlantı reddedildi SSH dinleyicisi, hedef adresi, yönlendirme kuralı ve seçilen port
Bağlantı zaman aşımına uğradı LAN erişimi, Windows güvenlik duvarı, VPN yönlendirmesi ve ağ yalıtımı
İzin reddedildi Linux kullanıcı adı, kimlik doğrulama yöntemi ve yetkili anahtar
Yeniden başlatmaya kadar çalışıyordu WSL hizmet durumu ve değişen Windows/WSL adresleri
Terminal çalışıyor, VS Code çalışmıyor Uzak sunucu önkoşulları ve VS Code bağlantı kayıtları

Bağlantı tanılaması için ssh -vvv windows-wsl kullanın. Linux hizmeti ve kimlik doğrulama kontrolleri için WSL SSH sorun giderme kılavuzuna devam edin.

Okurların sık sorduğu sorular

Mac, NAT kullanan WSL adresine doğrudan bağlanabilir mi?

Varsayılan kurulumun sıradan LAN yolu üzerinden bağlanamaz. Yönlendirme kullanan erişilebilir bir Windows uç noktası seçin veya uygun başka bir ağ yolu yapılandırın.

Windows OpenSSH Server’a da ihtiyacım var mı?

Yukarıdaki yönlendirme yaklaşımında gerekmez: hedef SSH sunucusu Ubuntu içinde çalışır. Windows üzerinden bir SSH atlama sunucusu tasarımını özellikle seçerseniz ayrı Windows SSH sunucusu gerekir.

WSL adresi neden değişiyor?

NAT adresini dinamik kabul edin. Dağıtım yeniden başlatıldığında kontrol edin ve gerektiğinde yönlendirme hedefini yenileyin.