{"id":43631,"date":"2026-07-27T08:01:22","date_gmt":"2026-07-27T05:01:22","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=43631"},"modified":"2026-07-27T08:01:47","modified_gmt":"2026-07-27T05:01:47","slug":"visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/","title":{"rendered":"Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber"},"content":{"rendered":"<h2>Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda, geli\u015ftirme ortamlar\u0131n\u0131n esnekli\u011fi ve eri\u015filebilirli\u011fi giderek daha fazla \u00f6nem kazanmaktad\u0131r. Geli\u015ftiriciler, kodlar\u0131n\u0131 yerel makinelerinde \u00e7al\u0131\u015ft\u0131rmak yerine, daha g\u00fc\u00e7l\u00fc sunucularda, bulut ortamlar\u0131nda veya \u00f6zel sanal makinelerde bar\u0131nd\u0131rma ihtiyac\u0131 duyabilirler. Bu senaryolarda devreye giren &#8220;uzak geli\u015ftirme&#8221; kavram\u0131, geli\u015ftiricilere fiziksel konumlar\u0131ndan ba\u011f\u0131ms\u0131z olarak projeleri \u00fczerinde \u00e7al\u0131\u015fma imkan\u0131 sunar. Visual Studio Code (VS Code), hafif yap\u0131s\u0131, zengin eklenti ekosistemi ve g\u00fc\u00e7l\u00fc Remote Development \u00f6zellikleri sayesinde bu alanda lider bir ara\u00e7 haline gelmi\u015ftir. \u00d6zellikle Remote-SSH eklentisi, geli\u015ftiricilerin SSH protokol\u00fc \u00fczerinden herhangi bir uzak Linux, macOS veya Windows sunucusuna sorunsuz bir \u015fekilde ba\u011flanarak, yerel bir IDE kullan\u0131yormu\u015f gibi kod yazmalar\u0131n\u0131, hata ay\u0131klamalar\u0131n\u0131 ve projelerini y\u00f6netmelerini sa\u011flar. Bu makale, VS Code&#8217;un Remote-SSH eklentisi ile uzak geli\u015ftirme yapman\u0131n t\u00fcm ad\u0131mlar\u0131n\u0131, temel kavramlardan ileri d\u00fczey ipu\u00e7lar\u0131na kadar detayl\u0131 bir \u015fekilde ele alacakt\u0131r. Amac\u0131m\u0131z, geli\u015ftiricilere bu g\u00fc\u00e7l\u00fc arac\u0131 etkin bir \u015fekilde kullanarak verimliliklerini art\u0131rmalar\u0131 i\u00e7in kapsaml\u0131 bir rehber sunmakt\u0131r.<\/p>\n<h2>Temel Kavramlar ve Avantajlar<\/h2>\n<p>Uzak geli\u015ftirme, modern yaz\u0131l\u0131m m\u00fchendisli\u011finin vazge\u00e7ilmez bir par\u00e7as\u0131 haline gelmi\u015ftir. Bu b\u00f6l\u00fcmde, uzak geli\u015ftirmenin ne oldu\u011funu, neden bu kadar \u00f6nemli oldu\u011funu ve Visual Studio Code ile Remote-SSH kombinasyonunun sundu\u011fu avantajlar\u0131 inceleyece\u011fiz.<\/p>\n<h3>Uzak Geli\u015ftirme Nedir?<\/h3>\n<p>Uzak geli\u015ftirme, bir geli\u015ftiricinin kodunu yerel makinesinde \u00e7al\u0131\u015ft\u0131rmak yerine, bir a\u011f \u00fczerinden eri\u015filebilen uzak bir sunucuda veya sanal makinede \u00e7al\u0131\u015ft\u0131rmas\u0131, derlemesi ve hata ay\u0131klamas\u0131 s\u00fcrecidir. Bu yakla\u015f\u0131mda, geli\u015ftiricinin yerel makinesi yaln\u0131zca bir &#8220;ince istemci&#8221; g\u00f6revi g\u00f6r\u00fcr; yani sadece kullan\u0131c\u0131 aray\u00fcz\u00fcn\u00fc (VS Code gibi bir IDE&#8217;yi) bar\u0131nd\u0131r\u0131r. T\u00fcm kaynak kodlar\u0131, ba\u011f\u0131ml\u0131l\u0131klar, derleme ara\u00e7lar\u0131 ve \u00e7al\u0131\u015fma zaman\u0131 ortamlar\u0131 uzak sunucuda bulunur ve orada y\u00fcr\u00fct\u00fcl\u00fcr. Geli\u015ftirici, uzak sunucudaki dosya sistemine, terminale ve di\u011fer ara\u00e7lara SSH gibi g\u00fcvenli bir protokol \u00fczerinden eri\u015fir.<\/p>\n<p>Geleneksel geli\u015ftirme yakla\u015f\u0131mlar\u0131nda, t\u00fcm ara\u00e7lar ve kod yerel makinede bulunur. Bu, kurulum ve bak\u0131m kolayl\u0131\u011f\u0131 sa\u011flayabilirken, \u00f6zellikle b\u00fcy\u00fck projelerde, farkl\u0131 ortam gereksinimlerinde veya s\u0131n\u0131rl\u0131 kaynaklara sahip yerel makinelerde \u00e7e\u015fitli zorluklara yol a\u00e7abilir. Uzak geli\u015ftirme, bu zorluklar\u0131n \u00fcstesinden gelmek i\u00e7in g\u00fc\u00e7l\u00fc bir alternatif sunar.<\/p>\n<h3>Neden Uzak Geli\u015ftirme?<\/h3>\n<p>Uzak geli\u015ftirme yakla\u015f\u0131m\u0131n\u0131n benimsenmesi i\u00e7in bir\u00e7ok ge\u00e7erli sebep bulunmaktad\u0131r:<\/p>\n<p>*   <strong>Performans ve Kaynak Y\u00f6netimi:<\/strong> Yerel makineniz, \u00f6zellikle b\u00fcy\u00fck kod tabanlar\u0131, yo\u011fun kaynak kullanan derleme s\u00fcre\u00e7leri veya karma\u015f\u0131k ba\u011f\u0131ml\u0131l\u0131klar\u0131 olan projeler i\u00e7in yetersiz kalabilir. Uzak bir sunucuya ba\u011flanarak, \u00e7ok daha g\u00fc\u00e7l\u00fc i\u015flemcilere, daha fazla RAM&#8217;e ve daha h\u0131zl\u0131 depolama birimlerine sahip donan\u0131mlar\u0131 kullanabilirsiniz. Bu, derleme s\u00fcrelerini k\u0131salt\u0131r, testleri h\u0131zland\u0131r\u0131r ve genel geli\u015ftirme deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirir. Kendi yerel makinenizin kaynaklar\u0131n\u0131 t\u00fcketmeden \u00e7al\u0131\u015fmak, ayn\u0131 anda ba\u015fka g\u00f6revleri de sorunsuz bir \u015fekilde yapabilmenizi sa\u011flar.<br \/>\n*   <strong>G\u00fcvenlik:<\/strong> Hassas kaynak kodlar\u0131 veya fikri m\u00fclkiyet i\u00e7eren projeler \u00fczerinde \u00e7al\u0131\u015f\u0131rken, kodun yerel makinede bulunmas\u0131 g\u00fcvenlik riskleri olu\u015fturabilir. Uzak geli\u015ftirme ile kaynak kodlar\u0131 hi\u00e7bir zaman yerel makinenize indirilmez. T\u00fcm i\u015flemler uzak sunucuda ger\u00e7ekle\u015fti\u011fi i\u00e7in, yerel makinenizin \u00e7al\u0131nmas\u0131 veya g\u00fcvenli\u011finin ihlal edilmesi durumunda bile kodunuz g\u00fcvende kal\u0131r.<br \/>\n*   <strong>Tutarl\u0131l\u0131k ve Standardizasyon:<\/strong> Geli\u015ftirme ekipleri genellikle farkl\u0131 i\u015fletim sistemleri ve donan\u0131mlara sahip makineler kullan\u0131r. Bu durum, &#8220;Benim makinemde \u00e7al\u0131\u015f\u0131yordu!&#8221; gibi sorunlara yol a\u00e7abilir. Uzak geli\u015ftirme, t\u00fcm ekibin ayn\u0131 standartla\u015ft\u0131r\u0131lm\u0131\u015f geli\u015ftirme ortam\u0131nda \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. Herkes, ayn\u0131 i\u015fletim sistemi s\u00fcr\u00fcm\u00fc, ayn\u0131 ba\u011f\u0131ml\u0131l\u0131klar ve ayn\u0131 ara\u00e7larla yap\u0131land\u0131r\u0131lm\u0131\u015f bir sunucuya ba\u011flan\u0131r. Bu, ortam farkl\u0131l\u0131klar\u0131ndan kaynaklanan hatalar\u0131 ortadan kald\u0131r\u0131r ve i\u015fbirli\u011fini kolayla\u015ft\u0131r\u0131r.<br \/>\n*   <strong>Esneklik ve Mobilite:<\/strong> Uzak sunucuda kurulan geli\u015ftirme ortam\u0131na, internet ba\u011flant\u0131s\u0131 olan herhangi bir cihazdan (diz\u00fcst\u00fc bilgisayar, masa\u00fcst\u00fc bilgisayar, hatta tabletler) eri\u015febilirsiniz. Bu, ofisten, evden veya seyahat ederken ayn\u0131 geli\u015ftirme ortam\u0131n\u0131zla \u00e7al\u0131\u015fmaya devam edebilece\u011finiz anlam\u0131na gelir. Farkl\u0131 bir bilgisayar kullanmaya ba\u015flad\u0131\u011f\u0131n\u0131zda, sadece VS Code&#8217;u kurup uzak sunucunuza ba\u011flanman\u0131z yeterlidir; t\u00fcm ayarlar\u0131n\u0131z ve a\u00e7\u0131k projeleriniz sizi bekliyor olacakt\u0131r.<br \/>\n*   <strong>H\u0131zl\u0131 Ortam Kurulumu:<\/strong> Yeni bir projeye ba\u015flarken veya yeni bir ekip \u00fcyesi kat\u0131ld\u0131\u011f\u0131nda, geli\u015ftirme ortam\u0131n\u0131n kurulumu saatler hatta g\u00fcnler s\u00fcrebilir. Uzak geli\u015ftirme ile, \u00f6nceden yap\u0131land\u0131r\u0131lm\u0131\u015f bir sunucu imaj\u0131 veya Docker konteyneri kullan\u0131larak yeni bir geli\u015ftirme ortam\u0131 dakikalar i\u00e7inde haz\u0131r hale getirilebilir.<\/p>\n<h3>Visual Studio Code ve Remote-SSH&#8217;in G\u00fcc\u00fc<\/h3>\n<p>Visual Studio Code, Microsoft taraf\u0131ndan geli\u015ftirilen \u00fccretsiz ve a\u00e7\u0131k kaynakl\u0131 bir kod d\u00fczenleyicidir. Hafif yap\u0131s\u0131, y\u00fcksek performans\u0131, zengin \u00f6zellikleri ve geni\u015f eklenti ekosistemi sayesinde k\u0131sa s\u00fcrede geli\u015ftiriciler aras\u0131nda pop\u00fclerlik kazanm\u0131\u015ft\u0131r. VS Code&#8217;un Remote Development eklenti paketi, bu g\u00fcc\u00fc bir ad\u0131m \u00f6teye ta\u015f\u0131yarak, geli\u015ftiricilerin \u00e7e\u015fitli uzak ortamlarda (SSH, Konteynerler, WSL) sorunsuz bir \u015fekilde \u00e7al\u0131\u015fmas\u0131na olanak tan\u0131r.<\/p>\n<p>Remote-SSH eklentisi, bu paketin temel bile\u015fenlerinden biridir ve VS Code&#8217;u uzak bir sunucuya ba\u011flamak i\u00e7in kullan\u0131l\u0131r. Bu entegrasyonun g\u00fcc\u00fc \u015fu noktalarda yatar:<\/p>\n<p>*   <strong>\u015eeffaf Kullan\u0131m:<\/strong> Remote-SSH ile uzak bir sunucuya ba\u011fland\u0131\u011f\u0131n\u0131zda, VS Code neredeyse yerel bir geli\u015ftirme deneyimi sunar. Uzak dosya sisteminde gezinme, dosyalar\u0131 d\u00fczenleme, terminal komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rma, hata ay\u0131klama ve hatta eklentileri kullanma i\u015flemleri yerel bir makinede yap\u0131l\u0131yormu\u015f gibi hissettirir.<br \/>\n*   <strong>Eklenti Deste\u011fi:<\/strong> VS Code&#8217;un en b\u00fcy\u00fck avantajlar\u0131ndan biri olan eklenti ekosistemi, Remote-SSH ile de tam uyumludur. Uzak sunucuya ba\u011fland\u0131\u011f\u0131n\u0131zda, VS Code otomatik olarak &#8220;VS Code Server&#8221; adl\u0131 k\u00fc\u00e7\u00fck bir sunucu bile\u015fenini uzak makineye kurar. Bu sunucu, yerel VS Code istemcinizle ileti\u015fim kurar ve eklentilerin uzak sunucu taraf\u0131nda \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. B\u00f6ylece, Python, Node.js, Go gibi dillerin eklentileri, Git entegrasyonu, linting ara\u00e7lar\u0131 ve di\u011fer geli\u015ftirme yard\u0131mc\u0131lar\u0131 uzak ortamda sorunsuz bir \u015fekilde \u00e7al\u0131\u015f\u0131r.<br \/>\n*   <strong>Esnek Yap\u0131land\u0131rma:<\/strong> SSH yap\u0131land\u0131rma dosyas\u0131 (<code>~\/.ssh\/config<\/code>) \u00fczerinden uzak sunuculara ba\u011flant\u0131 ayarlar\u0131n\u0131 kolayca y\u00f6netebilirsiniz. Bu, karma\u015f\u0131k SSH t\u00fcnelleri, kimlik do\u011frulama y\u00f6ntemleri ve di\u011fer \u00f6zel ayarlar i\u00e7in esneklik sa\u011flar.<br \/>\n*   <strong>Port Y\u00f6nlendirme:<\/strong> Uzak sunucuda \u00e7al\u0131\u015fan bir web uygulamas\u0131na veya API&#8217;ye yerel taray\u0131c\u0131n\u0131zdan eri\u015fmeniz gerekti\u011finde, Remote-SSH&#8217;in port y\u00f6nlendirme \u00f6zelli\u011fi devreye girer. Bu \u00f6zellik, uzak sunucudaki bir portu yerel makinenizdeki bir porta t\u00fcnelleyerek, sanki uygulama yerel makinenizde \u00e7al\u0131\u015f\u0131yormu\u015f gibi eri\u015fim imkan\u0131 sunar.<\/p>\n<p>\u00d6zetle, Visual Studio Code ve Remote-SSH, geli\u015ftiricilere g\u00fc\u00e7l\u00fc, esnek, g\u00fcvenli ve verimli bir uzak geli\u015ftirme deneyimi sunarak, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinin taleplerini kar\u015f\u0131lamak i\u00e7in ideal bir kombinasyon olu\u015fturur.<\/p>\n<h2>Gereksinimler ve \u00d6n Haz\u0131rl\u0131klar<\/h2>\n<p>Visual Studio Code ile Remote-SSH \u00fczerinden uzak geli\u015ftirme yapmaya ba\u015flamadan \u00f6nce, hem yerel makinenizde hem de uzak sunucunuzda belirli gereksinimlerin kar\u015f\u0131land\u0131\u011f\u0131ndan emin olman\u0131z gerekir. Bu b\u00f6l\u00fcm, gerekli \u00f6n haz\u0131rl\u0131klar\u0131 ve ayarlar\u0131 detayland\u0131racakt\u0131r.<\/p>\n<h3>Yerel Makine Gereksinimleri<\/h3>\n<p>Yerel makineniz, uzak sunucuya ba\u011flanmak i\u00e7in bir k\u00f6pr\u00fc g\u00f6revi g\u00f6recektir. Bu nedenle a\u015fa\u011f\u0131daki bile\u015fenlerin y\u00fckl\u00fc ve yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131 gerekir:<\/p>\n<p>*   <strong>Visual Studio Code Kurulumu:<\/strong> Yerel makinenizde Visual Studio Code&#8217;un g\u00fcncel bir s\u00fcr\u00fcm\u00fcn\u00fcn kurulu olmas\u0131 zorunludur. VS Code&#8217;u resmi web sitesinden (code.visualstudio.com) indirip i\u015fletim sisteminize uygun \u015fekilde kurabilirsiniz.<br \/>\n*   <strong>SSH \u0130stemcisi:<\/strong> VS Code&#8217;un Remote-SSH eklentisi, uzak sunucuya ba\u011flanmak i\u00e7in yerel makinenizdeki bir SSH istemcisini kullan\u0131r.<br \/>\n    *   <strong>Windows \u0130\u00e7in:<\/strong> Windows 10 (s\u00fcr\u00fcm 1803 ve sonras\u0131) ve Windows 11&#8217;de OpenSSH istemcisi genellikle varsay\u0131lan olarak y\u00fckl\u00fc gelir. Bunu Denetim Masas\u0131 > Uygulamalar > \u0130ste\u011fe Ba\u011fl\u0131 \u00d6zellikler (Optional Features) alt\u0131ndan kontrol edebilir ve y\u00fckleyebilirsiniz. Alternatif olarak, Git for Windows ile birlikte gelen Git Bash de bir SSH istemcisi i\u00e7erir ve kullan\u0131labilir. PuTTY gibi \u00fc\u00e7\u00fcnc\u00fc taraf SSH istemcileri do\u011frudan Remote-SSH taraf\u0131ndan kullan\u0131lmaz, ancak anahtar y\u00f6netimi i\u00e7in faydal\u0131 olabilir.<br \/>\n    *   <strong>macOS ve Linux \u0130\u00e7in:<\/strong> Bu i\u015fletim sistemlerinde SSH istemcisi genellikle varsay\u0131lan olarak y\u00fckl\u00fc gelir ve terminal \u00fczerinden <code>ssh<\/code> komutu ile eri\u015filebilir.<\/p>\n<h3>Uzak Sunucu Gereksinimleri<\/h3>\n<p>Uzak sunucunuzun, VS Code&#8217;un Remote-SSH eklentisi ile ba\u011flant\u0131 kurabilmesi i\u00e7in belirli servisleri ve yap\u0131land\u0131rmalar\u0131 sa\u011flamas\u0131 gerekir:<\/p>\n<p>*   <strong>SSH Sunucusu (sshd) Kurulumu ve \u00c7al\u0131\u015f\u0131r Durumu:<\/strong> Uzak sunucunuzda bir SSH sunucusunun (genellikle <code>OpenSSH Server<\/code> veya <code>sshd<\/code>) kurulu ve \u00e7al\u0131\u015f\u0131r durumda olmas\u0131 gerekir. Bu, yerel makinenizin sunucuya g\u00fcvenli bir \u015fekilde ba\u011flanmas\u0131n\u0131 sa\u011flar.<br \/>\n    *   <strong>Linux Sunucular \u0130\u00e7in:<\/strong> \u00c7o\u011fu Linux da\u011f\u0131t\u0131m\u0131nda SSH sunucusu varsay\u0131lan olarak y\u00fckl\u00fc gelir veya kolayca kurulabilir. \u00d6rne\u011fin, Ubuntu\/Debian tabanl\u0131 sistemlerde <code>sudo apt update && sudo apt install openssh-server<\/code> komutuyla y\u00fcklenebilir. Kurulumdan sonra servisinin \u00e7al\u0131\u015f\u0131r durumda oldu\u011fundan emin olun: <code>sudo systemctl status ssh<\/code>.<br \/>\n    *   <strong>Windows Sunucular \u0130\u00e7in:<\/strong> Windows Server veya Windows 10\/11&#8217;de OpenSSH Server&#8217;\u0131 iste\u011fe ba\u011fl\u0131 bir \u00f6zellik olarak y\u00fckleyebilirsiniz.<br \/>\n*   <strong>Uzak Sunucuya Eri\u015fim Bilgileri:<\/strong> Sunucuya ba\u011flanmak i\u00e7in a\u015fa\u011f\u0131daki bilgilere ihtiyac\u0131n\u0131z olacak:<br \/>\n    *   <strong>IP Adresi veya Hostname:<\/strong> Uzak sunucunun a\u011f \u00fczerindeki benzersiz adresi (\u00f6rn. <code>192.168.1.100<\/code> veya <code>myserver.example.com<\/code>).<br \/>\n    *   <strong>Kullan\u0131c\u0131 Ad\u0131:<\/strong> Sunucuda oturum a\u00e7mak i\u00e7in kullanaca\u011f\u0131n\u0131z kullan\u0131c\u0131 ad\u0131 (\u00f6rn. <code>ubuntu<\/code>, <code>ec2-user<\/code>, <code>root<\/code>).<br \/>\n    *   <strong>Kimlik Do\u011frulama Y\u00f6ntemi:<\/strong><br \/>\n        *   <strong>Parola:<\/strong> Kullan\u0131c\u0131 ad\u0131yla birlikte kullan\u0131lan parola.<br \/>\n        *   <strong>SSH Anahtar\u0131:<\/strong> Daha g\u00fcvenli ve \u00f6nerilen y\u00f6ntemdir. Bir genel\/\u00f6zel anahtar \u00e7ifti olu\u015fturman\u0131z ve genel anahtar\u0131n\u0131z\u0131 uzak sunucudaki kullan\u0131c\u0131n\u0131n <code>~\/.ssh\/authorized_keys<\/code> dosyas\u0131na eklemeniz gerekir.<br \/>\n*   <strong>Gerekirse <code>sudo<\/code> Yetkisi:<\/strong> Uzak sunucuda baz\u0131 sistem d\u00fczeyinde i\u015flemler yapman\u0131z veya belirli dizinlere yazma izni alman\u0131z gerekirse, ba\u011fland\u0131\u011f\u0131n\u0131z kullan\u0131c\u0131n\u0131n <code>sudo<\/code> yetkisine sahip olmas\u0131 faydal\u0131 olacakt\u0131r.<\/p>\n<h3>A\u011f ve G\u00fcvenlik Duvar\u0131 Ayarlar\u0131<\/h3>\n<p>Ba\u011flant\u0131n\u0131n sorunsuz kurulabilmesi i\u00e7in a\u011f ve g\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131n do\u011fru yap\u0131ld\u0131\u011f\u0131ndan emin olun:<\/p>\n<p>*   <strong>SSH Portunun A\u00e7\u0131k Olmas\u0131:<\/strong> SSH varsay\u0131lan olarak TCP 22 numaral\u0131 portu kullan\u0131r. Uzak sunucunun g\u00fcvenlik duvar\u0131nda (\u00f6rn. <code>ufw<\/code>, <code>firewalld<\/code>, AWS Security Groups, Azure Network Security Groups) bu portun gelen ba\u011flant\u0131lara a\u00e7\u0131k oldu\u011fundan emin olun. E\u011fer SSH farkl\u0131 bir portta \u00e7al\u0131\u015f\u0131yorsa, bu portun a\u00e7\u0131k olmas\u0131 gerekir.<br \/>\n*   <strong>Yerel A\u011f Eri\u015fimi:<\/strong> E\u011fer uzak sunucu yerel a\u011f\u0131n\u0131zdaysa, yerel makinenizin bu sunucuya a\u011f \u00fczerinden eri\u015febildi\u011finden emin olun.<br \/>\n*   <strong>\u0130nternet Eri\u015fimi (Bulut Sunucular\u0131 \u0130\u00e7in):<\/strong> Bulut sa\u011flay\u0131c\u0131lar\u0131 (AWS, Azure, GCP vb.) genellikle varsay\u0131lan olarak SSH ba\u011flant\u0131lar\u0131na izin veren g\u00fcvenlik gruplar\u0131 veya a\u011f kurallar\u0131 sunar. Ancak, kendi kurallar\u0131n\u0131z\u0131 olu\u015fturduysan\u0131z, SSH portunun (genellikle 22) yerel makinenizin IP adresinden veya IP aral\u0131\u011f\u0131ndan eri\u015filebilir oldu\u011fundan emin olun.<\/p>\n<p>Bu \u00f6n haz\u0131rl\u0131klar\u0131 tamamlad\u0131ktan sonra, Visual Studio Code&#8217;un Remote-SSH eklentisini kurmaya ve uzak sunucunuza ba\u011flanmaya haz\u0131rs\u0131n\u0131z demektir.<\/p>\n<h2>Remote-SSH Eklentisinin Kurulumu<\/h2>\n<p>Visual Studio Code&#8217;un en g\u00fc\u00e7l\u00fc \u00f6zelliklerinden biri, zengin eklenti ekosistemidir. Remote-SSH eklentisi de bu ekosistemin \u00f6nemli bir par\u00e7as\u0131d\u0131r ve kurulumu olduk\u00e7a basittir.<\/p>\n<p>VS Code&#8217;u yerel makinenize kurduktan sonra, Remote-SSH eklentisini y\u00fcklemek i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyin:<\/p>\n<p>1.  <strong>Visual Studio Code&#8217;u A\u00e7\u0131n:<\/strong> Yerel makinenizde Visual Studio Code uygulamas\u0131n\u0131 ba\u015flat\u0131n.<br \/>\n2.  <strong>Eklentiler G\u00f6r\u00fcn\u00fcm\u00fcne Gidin:<\/strong> Sol taraftaki etkinlik \u00e7ubu\u011funda (Activity Bar) kare simgelerden olu\u015fan &#8220;Extensions&#8221; (Eklentiler) simgesine t\u0131klay\u0131n. Alternatif olarak, <code>Ctrl+Shift+X<\/code> (Windows\/Linux) veya <code>Cmd+Shift+X<\/code> (macOS) k\u0131sayolunu kullanabilirsiniz.<br \/>\n3.  <strong>Eklentiyi Aray\u0131n:<\/strong> Eklentiler g\u00f6r\u00fcn\u00fcm\u00fcn\u00fcn \u00fcst k\u0131sm\u0131ndaki arama kutusuna <code>Remote-SSH<\/code> yaz\u0131n.<br \/>\n4.  <strong>Eklentiyi Y\u00fckleyin:<\/strong> Arama sonu\u00e7lar\u0131nda &#8220;Remote &#8211; SSH&#8221; ba\u015fl\u0131kl\u0131 eklentiyi bulun. Bu eklenti genellikle Microsoft taraf\u0131ndan yay\u0131mlanm\u0131\u015ft\u0131r ve alt\u0131nda k\u00fc\u00e7\u00fck bir &#8220;Install&#8221; (Y\u00fckle) d\u00fc\u011fmesi bulunur. Bu d\u00fc\u011fmeye t\u0131klay\u0131n.<\/p>\n<p>    *   <strong>\u00d6nemli Not:<\/strong> Genellikle, &#8220;Remote &#8211; SSH&#8221; eklentisi, &#8220;Remote Development&#8221; adl\u0131 bir eklenti paketinin bir par\u00e7as\u0131 olarak gelir. Bu paket, Remote-SSH&#8217;in yan\u0131 s\u0131ra Remote &#8211; Containers ve Remote &#8211; WSL eklentilerini de i\u00e7erir. Remote Development paketini y\u00fcklemek, Remote-SSH&#8217;i de otomatik olarak y\u00fckleyecektir ve genellikle \u00f6nerilen y\u00f6ntemdir. E\u011fer sadece Remote-SSH&#8217;i arad\u0131ysan\u0131z ve &#8220;Remote Development&#8221; paketi kar\u015f\u0131n\u0131za \u00e7\u0131kt\u0131ysa, onu y\u00fcklemeniz en iyisidir.<\/p>\n<p>5.  <strong>Kurulumun Tamamlanmas\u0131n\u0131 Bekleyin:<\/strong> Eklenti k\u00fc\u00e7\u00fck bir boyuta sahip oldu\u011fu i\u00e7in kurulum genellikle birka\u00e7 saniye i\u00e7inde tamamlan\u0131r. Kurulum tamamland\u0131\u011f\u0131nda &#8220;Install&#8221; d\u00fc\u011fmesi &#8220;Manage&#8221; (Y\u00f6net) d\u00fc\u011fmesine d\u00f6n\u00fc\u015fecektir.<\/p>\n<p>Eklenti y\u00fcklendikten sonra, VS Code penceresinin sol alt k\u00f6\u015fesinde ye\u015fil bir ba\u011flant\u0131 simgesi (>) belirecektir. Bu simge, Remote Development \u00f6zelliklerinin aktif oldu\u011funu ve uzak bir ortama ba\u011flanmaya haz\u0131r oldu\u011funuzu g\u00f6sterir.<\/p>\n<p>Art\u0131k Remote-SSH eklentisi yerel VS Code&#8217;unuza y\u00fcklendi ve uzak sunucular\u0131n\u0131za ba\u011flanmak i\u00e7in haz\u0131rs\u0131n\u0131z.<\/p>\n<h2>Uzak Sunucuya Ba\u011flanma<\/h2>\n<p>Remote-SSH eklentisini y\u00fckledikten sonraki ad\u0131m, uzak sunucunuza bir ba\u011flant\u0131 kurmakt\u0131r. Bu s\u00fcre\u00e7, SSH yap\u0131land\u0131rma dosyas\u0131n\u0131n ayarlanmas\u0131ndan farkl\u0131 kimlik do\u011frulama y\u00f6ntemlerinin kullan\u0131lmas\u0131na kadar \u00e7e\u015fitli ad\u0131mlar\u0131 i\u00e7erir.<\/p>\n<h3>\u0130lk Ba\u011flant\u0131 ve SSH Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>VS Code \u00fczerinden uzak bir sunucuya ba\u011flanman\u0131n en yayg\u0131n ve esnek yolu, SSH yap\u0131land\u0131rma dosyas\u0131n\u0131 (<code>~\/.ssh\/config<\/code>) kullanmakt\u0131r. Bu dosya, farkl\u0131 sunucular i\u00e7in ba\u011flant\u0131 ayarlar\u0131n\u0131 merkezi bir yerde saklaman\u0131za olanak tan\u0131r.<\/p>\n<p>1.  <strong>Komut Paletini A\u00e7\u0131n:<\/strong> VS Code&#8217;da <code>Ctrl+Shift+P<\/code> (Windows\/Linux) veya <code>Cmd+Shift+P<\/code> (macOS) tu\u015flar\u0131na basarak komut paletini a\u00e7\u0131n.<br \/>\n2.  <strong>Ba\u011flant\u0131 Komutunu \u00c7al\u0131\u015ft\u0131r\u0131n:<\/strong> Komut paletine <code>Remote-SSH: Connect to Host...<\/code> yaz\u0131n ve \u00e7\u0131kan se\u00e7ene\u011fi t\u0131klay\u0131n.<br \/>\n3.  <strong>Yeni SSH Host Ekleme:<\/strong><br \/>\n    *   E\u011fer ilk kez ba\u011flan\u0131yorsan\u0131z, VS Code size &#8220;Add New SSH Host&#8230;&#8221; (Yeni SSH Host Ekle&#8230;) se\u00e7ene\u011fini sunacakt\u0131r. Bunu se\u00e7in.<br \/>\n    *   Ard\u0131ndan, ba\u011flanmak istedi\u011finiz uzak sunucunun ba\u011flant\u0131 dizesini girmeniz istenir. Bu genellikle <code>kullanici_adi@sunucu_ip_adresi_veya_hostname<\/code> format\u0131ndad\u0131r (\u00f6rn. <code>ubuntu@192.168.1.100<\/code> veya <code>ec2-user@my-remote-server.com<\/code>). E\u011fer SSH varsay\u0131lan port (22) d\u0131\u015f\u0131nda bir port kullan\u0131yorsa, <code>kullanici_adi@sunucu_ip_adresi_veya_hostname:port_numarasi<\/code> (\u00f6rn. <code>ubuntu@192.168.1.100:2222<\/code>) \u015feklinde belirtebilirsiniz.<br \/>\n    *   VS Code daha sonra bu ba\u011flant\u0131 bilgilerini kaydetmek i\u00e7in bir SSH yap\u0131land\u0131rma dosyas\u0131 se\u00e7menizi isteyecektir. Genellikle varsay\u0131lan konum olan <code>C:\\Users\\KULLANICI_ADINIZ\\.ssh\\config<\/code> (Windows) veya <code>~\/.ssh\/config<\/code> (Linux\/macOS) se\u00e7ene\u011fini tercih edin.<br \/>\n4.  <strong>SSH Yap\u0131land\u0131rma Dosyas\u0131n\u0131 D\u00fczenleme:<\/strong> VS Code, se\u00e7ti\u011finiz SSH yap\u0131land\u0131rma dosyas\u0131n\u0131 otomatik olarak a\u00e7acakt\u0131r. Burada, ba\u011flant\u0131 ayarlar\u0131n\u0131z\u0131 daha detayl\u0131 bir \u015fekilde yap\u0131land\u0131rabilirsiniz.<\/p>\n<p><strong>\u00d6rnek <code>~\/.ssh\/config<\/code> Dosyas\u0131:<\/strong><\/p>\n<pre><code class=\"language-\">Host my_remote_server\n    Hostname 192.168.1.100\n    User ubuntu\n    Port 22\n    IdentityFile ~\/.ssh\/id_rsa_my_key\n    ForwardAgent yes<\/code><\/pre>\n<p>*   <strong><code>Host<\/code>:<\/strong> Bu, VS Code&#8217;da ve SSH komutlar\u0131nda kullanaca\u011f\u0131n\u0131z takma add\u0131r. Anlaml\u0131 bir isim verin (\u00f6rn. <code>dev-server<\/code>, <code>aws-instance<\/code>).<br \/>\n*   <strong><code>Hostname<\/code>:<\/strong> Uzak sunucunun IP adresi veya tam nitelikli alan ad\u0131 (FQDN).<br \/>\n*   <strong><code>User<\/code>:<\/strong> Uzak sunucuda oturum a\u00e7mak i\u00e7in kullan\u0131lacak kullan\u0131c\u0131 ad\u0131.<br \/>\n*   <strong><code>Port<\/code>:<\/strong> Uzak sunucudaki SSH servisinin dinledi\u011fi port numaras\u0131 (varsay\u0131lan 22). E\u011fer farkl\u0131 bir port kullan\u0131yorsan\u0131z belirtin.<br \/>\n*   <strong><code>IdentityFile<\/code>:<\/strong> Uzak sunucuya ba\u011flanmak i\u00e7in kullan\u0131lacak \u00f6zel SSH anahtar\u0131n\u0131n yolu. Bu, parola yerine anahtar ile kimlik do\u011frulama yaparken kullan\u0131l\u0131r.<br \/>\n*   <strong><code>ForwardAgent<\/code>:<\/strong> Yerel SSH arac\u0131n\u0131z\u0131n (ssh-agent) kimlik bilgilerini uzak sunucuya iletmek i\u00e7in kullan\u0131l\u0131r. Bu, uzak sunucudan ba\u015fka bir Git deposuna veya ba\u015fka bir SSH sunucusuna ba\u011flanman\u0131z gerekti\u011finde faydal\u0131d\u0131r.<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydettikten sonra, tekrar komut paletini a\u00e7\u0131p <code>Remote-SSH: Connect to Host...<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, yap\u0131land\u0131rma dosyan\u0131zdaki <code>Host<\/code> isimleri bir liste olarak g\u00f6r\u00fcnecektir. Ba\u011flanmak istedi\u011finiz host&#8217;u se\u00e7in.<\/p>\n<h3>Parola ile Ba\u011flanma<\/h3>\n<p>E\u011fer <code>IdentityFile<\/code> belirtmediyseniz veya SSH anahtar\u0131n\u0131z yoksa, VS Code sizden uzak sunucunun parolas\u0131n\u0131 isteyecektir.<\/p>\n<p>1.  Ba\u011flant\u0131 kurmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131zda, VS Code bir parola giri\u015f kutusu a\u00e7acakt\u0131r.<br \/>\n2.  Uzak sunucudaki kullan\u0131c\u0131n\u0131n parolas\u0131n\u0131 girin ve Enter tu\u015funa bas\u0131n.<br \/>\n3.  E\u011fer parola do\u011fruysa, ba\u011flant\u0131 kurulacakt\u0131r.<\/p>\n<p><strong>G\u00fcvenlik Uyar\u0131s\u0131:<\/strong> Parola ile kimlik do\u011frulama, SSH anahtarlar\u0131na g\u00f6re daha az g\u00fcvenlidir. Brute-force sald\u0131r\u0131lar\u0131na kar\u015f\u0131 daha savunmas\u0131zd\u0131r. M\u00fcmk\u00fcnse her zaman SSH anahtarlar\u0131n\u0131 kullanman\u0131z \u00f6nerilir.<\/p>\n<h3>SSH Anahtarlar\u0131 ile Ba\u011flanma<\/h3>\n<p>SSH anahtarlar\u0131, uzak sunuculara daha g\u00fcvenli ve pratik bir \u015fekilde ba\u011flanmak i\u00e7in kullan\u0131lan birincil y\u00f6ntemdir. Bir genel anahtar (public key) ve bir \u00f6zel anahtar (private key) \u00e7iftinden olu\u015fur.<\/p>\n<p>1.  <strong>Anahtar \u00c7ifti Olu\u015fturma (E\u011fer Yoksa):<\/strong><br \/>\n    *   Yerel makinenizin terminalinde <code>ssh-keygen<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n.<br \/>\n    *   Varsay\u0131lan dosya konumunu (<code>~\/.ssh\/id_rsa<\/code>) kabul edebilirsiniz.<br \/>\n    *   Bir parola (passphrase) girmeniz istenir. G\u00fcvenlik i\u00e7in bir parola belirlemeniz \u015fiddetle tavsiye edilir. Bu parola, \u00f6zel anahtar\u0131n\u0131z\u0131 korur ve her kulland\u0131\u011f\u0131n\u0131zda girilmesi gerekir (ssh-agent ile bu ad\u0131m\u0131 atlayabilirsiniz).<br \/>\n    *   Bu i\u015flem, <code>~\/.ssh\/id_rsa<\/code> (\u00f6zel anahtar) ve <code>~\/.ssh\/id_rsa.pub<\/code> (genel anahtar) dosyalar\u0131n\u0131 olu\u015fturacakt\u0131r.<br \/>\n2.  <strong>Genel Anahtar\u0131 Uzak Sunucuya Kopyalama:<\/strong><br \/>\n    *   Genel anahtar\u0131n\u0131z\u0131 uzak sunucudaki kullan\u0131c\u0131n\u0131n <code>~\/.ssh\/authorized_keys<\/code> dosyas\u0131na eklemeniz gerekir. Bunun en kolay yolu <code>ssh-copy-id<\/code> komutunu kullanmakt\u0131r:<\/p>\n<pre><code class=\"language-bash\">ssh-copy-id -i ~\/.ssh\/id_rsa.pub kullanici_adi@sunucu_ip_adresi<\/code><\/pre>\n<p>        Bu komut, uzak sunucuya parola ile ba\u011flanacak ve genel anahtar\u0131n\u0131z\u0131 otomatik olarak <code>authorized_keys<\/code> dosyas\u0131na ekleyecektir.<br \/>\n    *   E\u011fer <code>ssh-copy-id<\/code> yoksa veya \u00e7al\u0131\u015fm\u0131yorsa, genel anahtar\u0131n\u0131z\u0131 manuel olarak kopyalayabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">cat ~\/.ssh\/id_rsa.pub | ssh kullanici_adi@sunucu_ip_adresi &quot;mkdir -p ~\/.ssh &amp;&amp; chmod 700 ~\/.ssh &amp;&amp; cat &gt;&gt; ~\/.ssh\/authorized_keys &amp;&amp; chmod 600 ~\/.ssh\/authorized_keys&quot;<\/code><\/pre>\n<p>        Bu komut da uzak sunucuya parola ile ba\u011flanman\u0131z\u0131 gerektirecektir.<br \/>\n3.  <strong><code>~\/.ssh\/config<\/code> Dosyas\u0131n\u0131 G\u00fcncelleme:<\/strong><br \/>\n    *   Uzak sunucu yap\u0131land\u0131rman\u0131za <code>IdentityFile<\/code> sat\u0131r\u0131n\u0131 ekleyin veya g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-\">Host my_secure_server\n            Hostname your_server_ip\n            User your_username\n            IdentityFile ~\/.ssh\/id_rsa # Veya \u00f6zel anahtar\u0131n\u0131z\u0131n tam yolu\n            ForwardAgent yes # Opsiyonel, anahtar\u0131n\u0131z\u0131 ba\u015fka sunuculara iletmek i\u00e7in<\/code><\/pre>\n<p>    *   E\u011fer anahtar\u0131n\u0131za bir parola belirlediyseniz, ilk ba\u011flant\u0131da bu parola sizden istenecektir. <code>ssh-agent<\/code> kullanarak bu parolay\u0131 bir kez girip daha sonraki ba\u011flant\u0131larda tekrar sormamas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<h3>Ba\u011flant\u0131 Sonras\u0131 Ortam<\/h3>\n<p>Ba\u011flant\u0131 ba\u015far\u0131yla kuruldu\u011funda, VS Code pencereniz yeniden y\u00fcklenecek ve sol alt k\u00f6\u015fedeki durum \u00e7ubu\u011fu ye\u015fil renkte &#8220;SSH: my_remote_server&#8221; (veya ba\u011fland\u0131\u011f\u0131n\u0131z host ad\u0131) \u015feklinde bir g\u00f6sterge ile uzak sunucuya ba\u011fl\u0131 oldu\u011funuzu belirtecektir.<\/p>\n<p>*   <strong>VS Code Server Kurulumu:<\/strong> \u0130lk ba\u011flant\u0131da, VS Code, uzak sunucunuza &#8220;VS Code Server&#8221; adl\u0131 k\u00fc\u00e7\u00fck bir bile\u015feni otomatik olarak indirecek ve kuracakt\u0131r. Bu sunucu, yerel VS Code istemcinizle ileti\u015fim kurarak uzak dosya sistemine eri\u015fim, terminal i\u015flemleri ve eklentilerin \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. Bu kurulum biraz zaman alabilir.<br \/>\n*   <strong>Uzak Dosya Sistemi Taray\u0131c\u0131s\u0131:<\/strong> Sol taraftaki &#8220;Explorer&#8221; (Gezgin) g\u00f6r\u00fcn\u00fcm\u00fcnde, art\u0131k uzak sunucunun dosya sistemini g\u00f6rebilir ve gezinebilirsiniz. &#8220;Open Folder&#8221; (Klas\u00f6r A\u00e7) d\u00fc\u011fmesine t\u0131klayarak uzak sunucudaki bir proje klas\u00f6r\u00fcn\u00fc a\u00e7abilirsiniz.<br \/>\n*   <strong>Entegre Terminal:<\/strong> VS Code&#8217;un entegre terminali (<code>Ctrl+<\/code><code> veya <\/code>Cmd+`<code>) art\u0131k uzak sunucuda \u00e7al\u0131\u015f\u0131r. Burada \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z t\u00fcm komutlar uzak sunucuda y\u00fcr\u00fct\u00fclecektir.<\/p>\n<p>Art\u0131k uzak sunucunuzda kod yazmaya, d\u00fczenlemeye ve geli\u015ftirmeye haz\u0131rs\u0131n\u0131z.<\/p>\n<h2>Uzak Geli\u015ftirme Ortam\u0131n\u0131n Kullan\u0131m\u0131<\/h2>\n<p>Uzak sunucuya ba\u015far\u0131yla ba\u011fland\u0131ktan sonra, Visual Studio Code'un tan\u0131d\u0131k aray\u00fcz\u00fc sayesinde yerel bir geli\u015ftirme ortam\u0131nda \u00e7al\u0131\u015f\u0131yormu\u015f gibi hissedeceksiniz. Ancak, Remote-SSH'in sundu\u011fu baz\u0131 \u00f6zel \u00f6zellikler ve davran\u0131\u015flar vard\u0131r.<\/p>\n<h3>Uzak Dosya Sistemi \u00dczerinde \u00c7al\u0131\u015fma<\/h3>\n<p>Ba\u011flant\u0131 kuruldu\u011funda, VS Code'un sol taraf\u0131ndaki \"Explorer\" (Gezgin) paneli, uzak sunucunun dosya sistemini yans\u0131t\u0131r.<\/p>\n<p>1.  <strong>Klas\u00f6r A\u00e7ma:<\/strong> \"Open Folder\" (Klas\u00f6r A\u00e7) d\u00fc\u011fmesine t\u0131klayarak veya komut paletinden <\/code>Remote-SSH: Open Folder on SSH Host&#8230;<code> komutunu kullanarak uzak sunucudaki bir proje klas\u00f6r\u00fcn\u00fc a\u00e7abilirsiniz. A\u00e7t\u0131\u011f\u0131n\u0131z klas\u00f6r, yerel VS Code pencerenizin ana \u00e7al\u0131\u015fma alan\u0131 haline gelir.<br \/>\n2.  <strong>Dosya \u0130\u015flemleri:<\/strong> Uzak sunucudaki dosyalar\u0131 ve klas\u00f6rleri olu\u015fturabilir, d\u00fczenleyebilir, silebilir ve yeniden adland\u0131rabilirsiniz. T\u00fcm bu i\u015flemler sanki yerel diskinizdeymi\u015f gibi an\u0131nda ger\u00e7ekle\u015fir.<br \/>\n3.  <strong>Dosya \u0130\u00e7eriklerini D\u00fczenleme:<\/strong> Herhangi bir dosyay\u0131 a\u00e7t\u0131\u011f\u0131n\u0131zda, i\u00e7eri\u011fi VS Code d\u00fczenleyicisinde g\u00f6r\u00fcnt\u00fclenir. Yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikler otomatik olarak uzak sunucuya kaydedilir.<\/p>\n<h3>Entegre Terminal Kullan\u0131m\u0131<\/h3>\n<p>VS Code'un entegre terminali, uzak geli\u015ftirme ortam\u0131n\u0131n kalbinde yer al\u0131r.<\/p>\n<p>1.  <strong>Terminali A\u00e7ma:<\/strong> <\/code>Ctrl+`<code> (Windows\/Linux) veya <\/code>Cmd+`<code> (macOS) k\u0131sayoluyla terminali a\u00e7abilirsiniz.<br \/>\n2.  <strong>Uzak Sunucuda \u00c7al\u0131\u015fma:<\/strong> A\u00e7\u0131lan terminal, do\u011frudan uzak sunucunuzda \u00e7al\u0131\u015f\u0131r. Burada \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z t\u00fcm komutlar (\u00f6rn. <\/code>ls<code>, <\/code>git status<code>, <\/code>npm install<code>, <\/code>python my_script.py<code>) uzak sunucuda y\u00fcr\u00fct\u00fcl\u00fcr ve \u00e7\u0131kt\u0131lar yerel VS Code pencerenize yans\u0131t\u0131l\u0131r. Bu, ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00fcklemek, uygulamalar\u0131 ba\u015flatmak, testleri \u00e7al\u0131\u015ft\u0131rmak veya sunucu \u00fczerinde herhangi bir komut sat\u0131r\u0131 i\u015flemi yapmak i\u00e7in idealdir.<br \/>\n3.  <strong>Birden Fazla Terminal:<\/strong> Birden fazla terminal oturumu a\u00e7abilir ve her birini farkl\u0131 bir g\u00f6rev i\u00e7in kullanabilirsiniz.<\/p>\n<h3>Eklentilerin Y\u00f6netimi<\/h3>\n<p>Remote-SSH ile \u00e7al\u0131\u015f\u0131rken eklentilerin nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 anlamak \u00f6nemlidir.<\/p>\n<p>*   <strong>Yerel ve Uzak Eklentiler:<\/strong> VS Code eklentileri iki kategoriye ayr\u0131labilir:<br \/>\n    *   <strong>Yerel Eklentiler:<\/strong> Temas\u0131, simge paketleri, klavye k\u0131sayollar\u0131 gibi VS Code kullan\u0131c\u0131 aray\u00fcz\u00fcn\u00fc etkileyen eklentiler yerel makinenizde \u00e7al\u0131\u015f\u0131r.<br \/>\n    *   <strong>Uzak Eklentiler:<\/strong> Dil deste\u011fi (Python, JavaScript, Go), linter'lar, formatlay\u0131c\u0131lar, hata ay\u0131klay\u0131c\u0131lar ve Git entegrasyonu gibi kodunuzla do\u011frudan etkile\u015fime giren eklentiler uzak sunucuda \u00e7al\u0131\u015f\u0131r.<br \/>\n*   <strong>Otomatik Kurulum:<\/strong> Uzak bir sunucuya ilk ba\u011fland\u0131\u011f\u0131n\u0131zda, VS Code Server'\u0131n kurulmas\u0131yla birlikte, VS Code genellikle yerel makinenizde y\u00fckl\u00fc olan ve uzak ortamda \u00e7al\u0131\u015fmas\u0131 gereken eklentileri otomatik olarak uzak sunucuya y\u00fcklemeyi \u00f6nerir.<br \/>\n*   <strong>Eklenti G\u00f6r\u00fcn\u00fcm\u00fc:<\/strong> Eklentiler g\u00f6r\u00fcn\u00fcm\u00fcnde, y\u00fckl\u00fc eklentilerin alt\u0131nda \"LOCAL - INSTALLED\" (Yerel - Y\u00fckl\u00fc) ve \"SSH: my_remote_server - INSTALLED\" (SSH: my_remote_server - Y\u00fckl\u00fc) ba\u015fl\u0131klar\u0131n\u0131 g\u00f6receksiniz. Bu, hangi eklentilerin yerel makinenizde, hangilerinin uzak sunucunuzda aktif oldu\u011funu g\u00f6sterir. Uzak sunucu i\u00e7in \u00f6zel olarak bir eklenti y\u00fcklemeniz gerekirse, eklentiler g\u00f6r\u00fcn\u00fcm\u00fcnde arama yap\u0131p uzak sunucuya kurabilirsiniz.<\/p>\n<h3>Port Y\u00f6nlendirme (Port Forwarding)<\/h3>\n<p>Uzak sunucuda \u00e7al\u0131\u015fan bir web uygulamas\u0131n\u0131, API'yi veya ba\u015fka bir servisi yerel taray\u0131c\u0131n\u0131zdan veya istemcinizden eri\u015filebilir hale getirmeniz gerekti\u011finde port y\u00f6nlendirme \u00f6zelli\u011fi \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p>1.  <strong>Ports Panelini A\u00e7ma:<\/strong> VS Code'un alt panelinde \"Ports\" (Portlar) sekmesini bulabilirsiniz. E\u011fer g\u00f6r\u00fcnm\u00fcyorsa, <\/code>Ctrl+Shift+P<code> (veya <\/code>Cmd+Shift+P<code>) ile komut paletini a\u00e7\u0131p <\/code>View: Toggle Bottom Panel<code> komutunu \u00e7al\u0131\u015ft\u0131rarak paneli g\u00f6r\u00fcn\u00fcr hale getirebilir ve ard\u0131ndan \"Ports\" sekmesini se\u00e7ebilirsiniz.<br \/>\n2.  <strong>Otomatik Y\u00f6nlendirme:<\/strong> \u00c7o\u011fu durumda, uzak sunucuda bir uygulama ba\u015flatt\u0131\u011f\u0131n\u0131zda (\u00f6rn. <\/code>npm start<code> ile bir web sunucusu), VS Code bunu alg\u0131lar ve ilgili portu otomatik olarak yerel makinenize y\u00f6nlendirir. \"Ports\" panelinde y\u00f6nlendirilen portu ve yerel eri\u015fim adresini g\u00f6rebilirsiniz (\u00f6rn. <\/code>localhost:3000<code>).<br \/>\n3.  <strong>Manuel Y\u00f6nlendirme:<\/strong> E\u011fer otomatik y\u00f6nlendirme \u00e7al\u0131\u015fmazsa veya belirli bir portu manuel olarak y\u00f6nlendirmek isterseniz:<br \/>\n    *   \"Ports\" panelindeki \"Forward a Port\" (Bir Port Y\u00f6nlendir) d\u00fc\u011fmesine t\u0131klay\u0131n.<br \/>\n    *   Uzak sunucudaki port numaras\u0131n\u0131 girin (\u00f6rn. <\/code>8000<code>).<br \/>\n    *   VS Code, bu portu yerel makinenizdeki uygun bir porta y\u00f6nlendirecektir. Yerel portu da manuel olarak belirtebilirsiniz.<\/p>\n<h3>Hata Ay\u0131klama (Debugging)<\/h3>\n<p>Uzak sunucuda \u00e7al\u0131\u015fan kodunuz \u00fczerinde hata ay\u0131klama yapmak, Remote-SSH ile tamamen desteklenir.<\/p>\n<p>1.  <strong>Hata Ay\u0131klama G\u00f6r\u00fcn\u00fcm\u00fcne Gidin:<\/strong> Sol etkinlik \u00e7ubu\u011fundaki hata ay\u0131klama simgesine t\u0131klay\u0131n (bir b\u00f6cek ve oynat d\u00fc\u011fmesi simgesi).<br \/>\n2.  <strong><\/code>launch.json<code> Yap\u0131land\u0131rmas\u0131:<\/strong> Uzak sunucuda hata ay\u0131klama yapmak i\u00e7in, projenizin k\u00f6k dizininde <\/code>.vscode\/launch.json<code> dosyas\u0131n\u0131 yap\u0131land\u0131rman\u0131z gerekir. Bu dosya, hata ay\u0131klay\u0131c\u0131n\u0131n nas\u0131l ba\u015flat\u0131laca\u011f\u0131n\u0131 ve hangi parametreleri kullanaca\u011f\u0131n\u0131 tan\u0131mlar.<br \/>\n    *   \u00d6rne\u011fin, bir Python uygulamas\u0131n\u0131 hata ay\u0131klamak i\u00e7in, Python eklentisini uzak sunucuya kurduktan sonra, hata ay\u0131klama g\u00f6r\u00fcn\u00fcm\u00fcnden \"create a launch.json file\" (bir launch.json dosyas\u0131 olu\u015ftur) se\u00e7ene\u011fini se\u00e7ebilir ve \"Python\" ortam\u0131n\u0131 se\u00e7ebilirsiniz.<br \/>\n3.  <strong>Hata Ay\u0131klay\u0131c\u0131y\u0131 Ba\u015flatma:<\/strong> <\/code>launch.json<code> dosyas\u0131n\u0131 yap\u0131land\u0131rd\u0131ktan sonra, hata ay\u0131klama g\u00f6r\u00fcn\u00fcm\u00fcndeki \"Start Debugging\" (Hata Ay\u0131klamay\u0131 Ba\u015flat) d\u00fc\u011fmesine t\u0131klayarak hata ay\u0131klama oturumunu ba\u015flatabilirsiniz. Kesme noktalar\u0131 (breakpoints) belirleyebilir, de\u011fi\u015fkenleri inceleyebilir ve kodunuzu ad\u0131m ad\u0131m \u00e7al\u0131\u015ft\u0131rabilirsiniz. T\u00fcm bu i\u015flemler uzak sunucuda ger\u00e7ekle\u015fir.<\/p>\n<h3>Git Entegrasyonu<\/h3>\n<p>VS Code'un dahili Git entegrasyonu, uzak geli\u015ftirme ortam\u0131nda da sorunsuz bir \u015fekilde \u00e7al\u0131\u015f\u0131r.<\/p>\n<p>1.  <strong>Kaynak Kontrol G\u00f6r\u00fcn\u00fcm\u00fcne Gidin:<\/strong> Sol etkinlik \u00e7ubu\u011fundaki kaynak kontrol simgesine t\u0131klay\u0131n (\u00fc\u00e7l\u00fc \u00e7atal simgesi).<br \/>\n2.  <strong>Git Deposu ile \u00c7al\u0131\u015fma:<\/strong> Uzak sunucuda a\u00e7t\u0131\u011f\u0131n\u0131z klas\u00f6r bir Git deposu ise, VS Code otomatik olarak bunu alg\u0131lar. De\u011fi\u015fiklikleri (<\/code>git status<code>), commit'leri (<\/code>git commit<code>), push (<\/code>git push<code>) ve pull (<\/code>git pull<code>) i\u015flemlerini do\u011frudan VS Code aray\u00fcz\u00fcnden yapabilirsiniz.<br \/>\n3.  <strong>Kimlik Do\u011frulama:<\/strong> Git i\u015flemleri i\u00e7in kimlik do\u011frulama (\u00f6rn. GitHub, GitLab) genellikle SSH anahtarlar\u0131 \u00fczerinden yap\u0131l\u0131r. <\/code>~\/.ssh\/config<code> dosyan\u0131zdaki <\/code>ForwardAgent yes<code> ayar\u0131, yerel SSH anahtarlar\u0131n\u0131z\u0131n uzak sunucuya iletilmesini sa\u011flayarak Git operasyonlar\u0131nda kimlik do\u011frulamas\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Bu \u00f6zellikler, Remote-SSH'in uzak geli\u015ftirme deneyimini ne kadar kapsaml\u0131 ve yerel bir his verdi\u011fini g\u00f6stermektedir. Geli\u015ftiriciler, bu ara\u00e7lar\u0131 kullanarak verimliliklerini art\u0131rabilir ve projelerini daha esnek bir \u015fekilde y\u00f6netebilirler.<\/p>\n<h2>\u0130leri D\u00fczey Kullan\u0131m \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar<\/h2>\n<p>Remote-SSH eklentisi, temel ba\u011flant\u0131lar\u0131n \u00f6tesinde, geli\u015ftiricilere daha karma\u015f\u0131k senaryolar ve optimize edilmi\u015f i\u015f ak\u0131\u015flar\u0131 i\u00e7in \u00e7e\u015fitli ileri d\u00fczey \u00f6zellikler sunar. Bu b\u00f6l\u00fcmde, SSH yap\u0131land\u0131rma dosyas\u0131n\u0131 optimize etmekten g\u00fcvenlik ipu\u00e7lar\u0131na kadar \u00f6nemli konular\u0131 ele alaca\u011f\u0131z.<\/p>\n<h3>SSH Yap\u0131land\u0131rma Dosyas\u0131n\u0131 Optimize Etme<\/h3>\n<p><\/code>~\/.ssh\/config<code> dosyas\u0131, Remote-SSH deneyiminizin merkezinde yer al\u0131r ve do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda verimlili\u011finizi \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir.<\/p>\n<p>*   <strong><\/code>ProxyJump<code> (Z\u0131plama Sunucular\u0131 \u00dczerinden Ba\u011flant\u0131):<\/strong> Baz\u0131 kurumsal a\u011flarda veya bulut ortamlar\u0131nda, do\u011frudan hedef sunucuya SSH yapamazs\u0131n\u0131z. \u00d6nce bir \"z\u0131plama sunucusu\" (bastion host) \u00fczerinden ge\u00e7meniz gerekir. <\/code>ProxyJump<code> y\u00f6nergesi bu senaryoyu kolayla\u015ft\u0131r\u0131r:<\/p>\n<pre><code class=\"language-\">Host bastion_host\n        Hostname 10.0.0.1\n        User admin_user\n        IdentityFile ~\/.ssh\/id_rsa_bastion\n\n    Host target_server\n        Hostname 192.168.1.10\n        User dev_user\n        ProxyJump bastion_host\n        IdentityFile ~\/.ssh\/id_rsa_target<\/code><\/pre>\n<p>    Bu yap\u0131land\u0131rma ile <\/code>target_server<code>'a ba\u011flanmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131zda, SSH otomatik olarak \u00f6nce <\/code>bastion_host<code>'a ba\u011flanacak ve oradan <\/code>target_server<code>'a t\u00fcnelleyecektir.<br \/>\n*   <strong><\/code>ForwardAgent<code> (Yerel SSH Anahtarlar\u0131n\u0131 Uzak Sunucuya \u0130letme):<\/strong> Uzak sunucudan ba\u015fka bir SSH sunucusuna (\u00f6rn. bir Git deposu veya ba\u015fka bir i\u00e7 sunucu) ba\u011flanman\u0131z gerekti\u011finde, yerel makinenizdeki SSH anahtarlar\u0131n\u0131 uzak sunucuya iletmek \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-\">Host my_remote_server\n        Hostname 192.168.1.100\n        User ubuntu\n        IdentityFile ~\/.ssh\/id_rsa\n        ForwardAgent yes<\/code><\/pre>\n<p>    <\/code>ForwardAgent yes<code> ayar\u0131 ile, yerel <\/code>ssh-agent<code>'\u0131n\u0131zda kay\u0131tl\u0131 olan anahtarlar\u0131n\u0131z uzak sunucuya iletilir. B\u00f6ylece uzak sunucudan <\/code>git clone git@github.com:user\/repo.git<code> gibi komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131rken tekrar kimlik do\u011frulamas\u0131 yapman\u0131za gerek kalmaz.<br \/>\n*   <strong><\/code>ControlMaster<code> ve <\/code>ControlPath<code> (Tek Bir Ana Ba\u011flant\u0131 \u00dczerinden Birden Fazla Oturum):<\/strong> Bu ayarlar, ayn\u0131 uzak sunucuya birden fazla SSH ba\u011flant\u0131s\u0131n\u0131 (\u00f6rn. farkl\u0131 terminal pencereleri, Git i\u015flemleri) tek bir ana ba\u011flant\u0131 \u00fczerinden y\u00f6neterek ba\u011flant\u0131 h\u0131z\u0131n\u0131 art\u0131r\u0131r ve kaynak t\u00fcketimini azalt\u0131r.<\/p>\n<pre><code class=\"language-\">Host *\n        ControlMaster auto\n        ControlPath ~\/.ssh\/control\/%r@%h:%p\n        ControlPersist 10m # Ana ba\u011flant\u0131y\u0131 10 dakika boyunca a\u00e7\u0131k tut<\/code><\/pre>\n<p>    Bu ayarlar\u0131 global olarak <\/code>Host *<code> alt\u0131nda tan\u0131mlamak, t\u00fcm SSH ba\u011flant\u0131lar\u0131n\u0131z i\u00e7in bu davran\u0131\u015f\u0131 etkinle\u015ftirir.<\/p>\n<h3>VS Code Server Y\u00f6netimi<\/h3>\n<p>VS Code Server, uzak geli\u015ftirme deneyiminin temelini olu\u015fturur. Bazen bu sunucuyla ilgili sorunlar ya\u015fanabilir.<\/p>\n<p>*   <strong>Otomatik Kurulum ve G\u00fcncelleme:<\/strong> Remote-SSH eklentisi, uzak sunucuya ba\u011fland\u0131\u011f\u0131n\u0131zda VS Code Server'\u0131 otomatik olarak indirir ve kurar. VS Code g\u00fcncellemeleri yay\u0131nland\u0131\u011f\u0131nda, sunucuyu da otomatik olarak g\u00fcncellemeyi dener.<br \/>\n*   <strong>Sorun Giderme:<\/strong> E\u011fer VS Code Server kurulumunda veya \u00e7al\u0131\u015fmas\u0131nda sorunlar ya\u015farsan\u0131z:<br \/>\n    *   <strong>\u00c7\u0131kt\u0131 Panelini Kontrol Edin:<\/strong> VS Code'da \"Output\" (\u00c7\u0131kt\u0131) panelini a\u00e7\u0131n ve \"Remote - SSH\" veya \"Log (Remote-SSH)\" se\u00e7ene\u011fini se\u00e7in. Burada kurulum ve ba\u011flant\u0131 ile ilgili detayl\u0131 loglar\u0131 g\u00f6rebilirsiniz.<br \/>\n    *   <strong>Manuel Kurulum:<\/strong> Nadiren de olsa, otomatik kurulum ba\u015far\u0131s\u0131z olabilir. Uzak sunucunun internet eri\u015fimi olmad\u0131\u011f\u0131nda veya belirli ba\u011f\u0131ml\u0131l\u0131klar eksik oldu\u011funda bu durum ya\u015fanabilir. Loglarda eksik ba\u011f\u0131ml\u0131l\u0131klar hakk\u0131nda bilgi bulabilir ve bunlar\u0131 manuel olarak y\u00fckleyebilirsiniz.<br \/>\n    *   <strong>VS Code Server'\u0131 Kald\u0131rma:<\/strong> Uzak sunucuda <\/code>~\/.vscode-server<code> klas\u00f6r\u00fcn\u00fc manuel olarak silerek sunucuyu kald\u0131rabilir ve VS Code'un bir sonraki ba\u011flant\u0131da yeniden kurmas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<h3>G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h3>\n<p>Uzak geli\u015ftirme yaparken g\u00fcvenlik her zaman \u00f6ncelikli olmal\u0131d\u0131r.<\/p>\n<p>*   <strong>G\u00fc\u00e7l\u00fc SSH Anahtarlar\u0131 Kullan\u0131n:<\/strong> <\/code>ssh-keygen<code> ile anahtar olu\u015ftururken varsay\u0131lan RSA yerine daha modern ve g\u00fc\u00e7l\u00fc algoritmalar (\u00f6rn. ED25519) kullanmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz: <\/code>ssh-keygen -t ed25519<code>.<br \/>\n*   <strong>Anahtar Parolas\u0131 (Passphrase) Kullan\u0131n:<\/strong> \u00d6zel SSH anahtar\u0131n\u0131z\u0131 her zaman bir parola ile koruyun. Bu, \u00f6zel anahtar\u0131n\u0131z\u0131n \u00e7al\u0131nmas\u0131 durumunda bile yetkisiz eri\u015fimi engeller.<br \/>\n*   <strong><\/code>ssh-agent<code> ile Anahtar Y\u00f6netimi:<\/strong> <\/code>ssh-agent<code> kullanarak anahtar parolalar\u0131n\u0131z\u0131 bir kez girip oturumunuz boyunca anahtarlar\u0131n\u0131z\u0131 bellekte tutabilirsiniz. Bu, her ba\u011flant\u0131da parola girmekten sizi kurtar\u0131r ve <\/code>ForwardAgent<code> ile birlikte kullan\u0131ld\u0131\u011f\u0131nda \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<br \/>\n*   <strong><\/code>sudo<code> Yetkisini S\u0131n\u0131rlay\u0131n:<\/strong> Uzak sunucuda kulland\u0131\u011f\u0131n\u0131z kullan\u0131c\u0131n\u0131n gereksiz <\/code>sudo<code> yetkilerine sahip olmad\u0131\u011f\u0131ndan emin olun. Minimum ayr\u0131cal\u0131k ilkesini uygulay\u0131n.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 Kurallar\u0131:<\/strong> SSH portunu (varsay\u0131lan 22) sadece belirli g\u00fcvenilir IP adreslerinden eri\u015fime a\u00e7\u0131n. <\/code>ufw<code> (Linux) veya bulut sa\u011flay\u0131c\u0131n\u0131z\u0131n g\u00fcvenlik gruplar\u0131\/NSG'leri ile bu k\u0131s\u0131tlamalar\u0131 uygulay\u0131n.<br \/>\n*   <strong><\/code>Fail2ban<code> Kullan\u0131n:<\/strong> <\/code>Fail2ban<code> gibi ara\u00e7lar, SSH sunucunuza yap\u0131lan ba\u015far\u0131s\u0131z oturum a\u00e7ma giri\u015fimlerini izler ve belirli bir say\u0131da ba\u015far\u0131s\u0131z denemeden sonra kaynak IP adresini otomatik olarak engeller. Bu, brute-force sald\u0131r\u0131lar\u0131na kar\u015f\u0131 ek bir koruma katman\u0131 sa\u011flar.<\/p>\n<h3>Performans Optimizasyonu<\/h3>\n<p>A\u011f gecikmesi, uzak geli\u015ftirme deneyimini etkileyebilir. \u0130\u015fte performans\u0131 art\u0131rmak i\u00e7in baz\u0131 ipu\u00e7lar\u0131:<\/p>\n<p>*   <strong>D\u00fc\u015f\u00fck Gecikmeli Ba\u011flant\u0131:<\/strong> M\u00fcmk\u00fcnse, uzak sunucunuzla aran\u0131zdaki a\u011f gecikmesini (latency) d\u00fc\u015f\u00fck tutun. Bu, fiziksel olarak sunucuya daha yak\u0131n olman\u0131z veya daha h\u0131zl\u0131 bir internet ba\u011flant\u0131s\u0131 kullanman\u0131z anlam\u0131na gelebilir.<br \/>\n*   <strong>B\u00fcy\u00fck Dosyalar\u0131 Kopyalamaktan Ka\u00e7\u0131n\u0131n:<\/strong> B\u00fcy\u00fck dosyalar\u0131 yerel makinenize kopyalamak yerine, m\u00fcmk\u00fcn oldu\u011funca uzak sunucuda \u00e7al\u0131\u015f\u0131n.<br \/>\n*   <strong>\u0130ndeksleme Ayarlar\u0131:<\/strong> B\u00fcy\u00fck projelerde, VS Code'un dosya indeksleme ve arama \u00f6zellikleri CPU ve disk kaynaklar\u0131n\u0131 t\u00fcketebilir. Ayarlardan belirli dizinleri veya dosya t\u00fcrlerini indeksleme d\u0131\u015f\u0131nda b\u0131rakarak performans\u0131 art\u0131rabilirsiniz (<\/code>files.watcherExclude<code>, <\/code>search.exclude<code>).<br \/>\n*   <strong>Gereksiz Eklentileri Devre D\u0131\u015f\u0131 B\u0131rak\u0131n:<\/strong> Uzak sunucuda sadece ihtiyac\u0131n\u0131z olan eklentileri etkinle\u015ftirin. \u00c7ok fazla eklenti, VS Code Server'\u0131n kaynak t\u00fcketimini art\u0131rabilir.<\/p>\n<h3>Farkl\u0131 Senaryolar<\/h3>\n<p>Remote-SSH, \u00e7e\u015fitli uzak ortamlar i\u00e7in uygulanabilir:<\/p>\n<p>*   <strong>Sanal Makinelerde Geli\u015ftirme:<\/strong> VirtualBox, VMware gibi sanalla\u015ft\u0131rma yaz\u0131l\u0131mlar\u0131 \u00fczerinde \u00e7al\u0131\u015fan Linux sanal makinelerine SSH ile ba\u011flanarak geli\u015ftirme yapabilirsiniz.<br \/>\n*   <strong>Bulut Sunucular\u0131nda Geli\u015ftirme:<\/strong> AWS EC2, Azure VM, Google Cloud Compute Engine gibi bulut sa\u011flay\u0131c\u0131lar\u0131n\u0131n sanal makinelerinde Remote-SSH kullanarak geli\u015ftirme yapmak olduk\u00e7a yayg\u0131nd\u0131r. Bu, y\u00fcksek performansl\u0131 ve \u00f6l\u00e7eklenebilir geli\u015ftirme ortamlar\u0131na eri\u015fim sa\u011flar.<br \/>\n*   <strong>Raspberry Pi gibi G\u00f6m\u00fcl\u00fc Sistemlerde Geli\u015ftirme:<\/strong> D\u00fc\u015f\u00fck g\u00fc\u00e7l\u00fc ancak programlanabilir cihazlar olan Raspberry Pi gibi tek kart bilgisayarlara SSH ile ba\u011flanarak projeler geli\u015ftirebilirsiniz. Bu, IoT ve g\u00f6m\u00fcl\u00fc sistem geli\u015ftirme i\u00e7in idealdir.<\/p>\n<p>Bu ileri d\u00fczey ipu\u00e7lar\u0131 ve en iyi uygulamalar, Remote-SSH'i daha verimli, g\u00fcvenli ve esnek bir \u015fekilde kullanman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h2>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h2>\n<p>Remote-SSH ile \u00e7al\u0131\u015f\u0131rken baz\u0131 yayg\u0131n sorunlarla kar\u015f\u0131la\u015fmak olas\u0131d\u0131r. Bu b\u00f6l\u00fcmde, bu sorunlar\u0131n nedenlerini ve olas\u0131 \u00e7\u00f6z\u00fcmlerini ele alaca\u011f\u0131z.<\/p>\n<h3>Ba\u011flant\u0131 Hatalar\u0131<\/h3>\n<p>Uzak sunucuya ba\u011flan\u0131rken en s\u0131k kar\u015f\u0131la\u015f\u0131lan sorunlar genellikle SSH ba\u011flant\u0131s\u0131yla ilgilidir.<\/p>\n<p>*   <strong>\"Could not establish connection: Connection refused\" (Ba\u011flant\u0131 kurulamad\u0131: Ba\u011flant\u0131 reddedildi):<\/strong><br \/>\n    *   <strong>Neden:<\/strong> Uzak sunucudaki SSH servisi (<\/code>sshd<code>) \u00e7al\u0131\u015fm\u0131yor, sunucunun IP adresi yanl\u0131\u015f veya g\u00fcvenlik duvar\u0131 ba\u011flant\u0131y\u0131 engelliyor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n        *   Uzak sunucuda <\/code>sudo systemctl status ssh<code> (Linux) komutuyla SSH servisinin durumunu kontrol edin. \u00c7al\u0131\u015fm\u0131yorsa <\/code>sudo systemctl start ssh<code> ile ba\u015flat\u0131n.<br \/>\n        *   Uzak sunucunun IP adresini veya hostname'ini <\/code>~\/.ssh\/config<code> dosyan\u0131zda do\u011fru yazd\u0131\u011f\u0131n\u0131zdan emin olun.<br \/>\n        *   Uzak sunucunun g\u00fcvenlik duvar\u0131 (\u00f6rn. <\/code>ufw<code>, <\/code>firewalld<code>) veya bulut sa\u011flay\u0131c\u0131n\u0131z\u0131n g\u00fcvenlik gruplar\u0131 SSH portuna (varsay\u0131lan 22) gelen ba\u011flant\u0131lar\u0131 engellemiyor olmal\u0131. Gerekirse portu a\u00e7\u0131n.<br \/>\n        *   Yerel makinenizin a\u011f\u0131ndan uzak sunucuya ping atarak veya <\/code>ssh kullanici@ip<code> komutuyla terminalden ba\u011flanmay\u0131 deneyerek genel a\u011f eri\u015fimini kontrol edin.<br \/>\n*   <strong>\"Permission denied (publickey,password)\" (\u0130zin reddedildi (genel anahtar, parola)):<\/strong><br \/>\n    *   <strong>Neden:<\/strong> Yanl\u0131\u015f kullan\u0131c\u0131 ad\u0131, yanl\u0131\u015f parola, SSH anahtar\u0131 do\u011fru yap\u0131land\u0131r\u0131lmam\u0131\u015f veya anahtar izinleri yanl\u0131\u015f.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n        *   <\/code>~\/.ssh\/config<code> dosyas\u0131ndaki <\/code>User<code> de\u011ferinin ve ba\u011flant\u0131 kurmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z kullan\u0131c\u0131n\u0131n do\u011fru oldu\u011fundan emin olun.<br \/>\n        *   Parola ile ba\u011flan\u0131yorsan\u0131z, parolan\u0131n do\u011fru oldu\u011fundan emin olun.<br \/>\n        *   SSH anahtar\u0131 kullan\u0131yorsan\u0131z:<br \/>\n            *   <\/code>IdentityFile<code> yolunun <\/code>~\/.ssh\/config<code> dosyas\u0131nda do\u011fru belirtildi\u011finden emin olun.<br \/>\n            *   \u00d6zel anahtar dosyan\u0131z\u0131n (\u00f6rn. <\/code>id_rsa<code>) izinlerinin <\/code>chmod 600 ~\/.ssh\/id_rsa<code> ile yaln\u0131zca size okunabilir oldu\u011fundan emin olun. Daha geni\u015f izinler SSH istemcisinin anahtar\u0131 reddetmesine neden olabilir.<br \/>\n            *   Genel anahtar\u0131n\u0131z\u0131n (<\/code>id_rsa.pub<code>) uzak sunucudaki <\/code>~\/.ssh\/authorized_keys<code> dosyas\u0131na do\u011fru bir \u015fekilde kopyaland\u0131\u011f\u0131ndan ve <\/code>authorized_keys<code> dosyas\u0131n\u0131n izinlerinin <\/code>chmod 600 ~\/.ssh\/authorized_keys<code> oldu\u011fundan emin olun. Ayr\u0131ca <\/code>~\/.ssh<code> klas\u00f6r\u00fcn\u00fcn izinleri <\/code>chmod 700 ~\/.ssh<code> olmal\u0131d\u0131r.<br \/>\n            *   Anahtar\u0131n\u0131za bir parola belirlediyseniz, bu parolay\u0131 do\u011fru girdi\u011finizden emin olun.<br \/>\n            *   <\/code>ssh-agent<code> kullan\u0131yorsan\u0131z, anahtar\u0131n\u0131z\u0131n <\/code>ssh-add<code> ile arac\u0131ya eklendi\u011finden emin olun.<br \/>\n*   <strong>\"Host key verification failed.\" (Host anahtar do\u011frulamas\u0131 ba\u015far\u0131s\u0131z oldu):<\/strong><br \/>\n    *   <strong>Neden:<\/strong> Uzak sunucunun SSH anahtar\u0131 de\u011fi\u015fmi\u015f olabilir (\u00f6rn. sunucu yeniden kuruldu veya IP adresi ba\u015fka bir sunucuya atand\u0131) veya bir man-in-the-middle sald\u0131r\u0131s\u0131 denemesi olabilir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> E\u011fer sunucunun anahtar\u0131n\u0131n ger\u00e7ekten de\u011fi\u015fti\u011finden eminseniz (\u00f6rn. sunucu y\u00f6neticinizle do\u011frulayarak), yerel makinenizdeki <\/code>~\/.ssh\/known_hosts<code> dosyas\u0131ndan ilgili sunucuya ait sat\u0131r\u0131 silin. Bir sonraki ba\u011flant\u0131da yeni anahtar\u0131 kabul etmeniz istenecektir.<\/p>\n<h3>Eklenti Sorunlar\u0131<\/h3>\n<p>Uzak sunucuda eklentilerle ilgili sorunlar ya\u015fanabilir.<\/p>\n<p>*   <strong>Eklentinin Uzak Sunucuda Kurulmamas\u0131 veya \u00c7al\u0131\u015fmamas\u0131:<\/strong><br \/>\n    *   <strong>Neden:<\/strong> Eklenti uzak sunucuya otomatik olarak y\u00fcklenemedi veya uzak sunucunun belirli ba\u011f\u0131ml\u0131l\u0131klar\u0131 eksik.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n        *   VS Code'un eklentiler g\u00f6r\u00fcn\u00fcm\u00fcnde (Ctrl+Shift+X), eklentinin hem yerel hem de uzak sunucuda (SSH: my_remote_server ba\u015fl\u0131\u011f\u0131 alt\u0131nda) y\u00fckl\u00fc olup olmad\u0131\u011f\u0131n\u0131 kontrol edin. E\u011fer de\u011filse, eklentiyi uzak sunucuya manuel olarak y\u00fckleyin.<br \/>\n        *   VS Code'un \"Output\" (\u00c7\u0131kt\u0131) panelinden \"Log (Remote-SSH)\" veya ilgili eklentinin \u00e7\u0131kt\u0131s\u0131n\u0131 kontrol ederek hata mesajlar\u0131n\u0131 inceleyin. Genellikle eksik ba\u011f\u0131ml\u0131l\u0131klar veya uyumluluk sorunlar\u0131 burada belirtilir.<br \/>\n        *   Baz\u0131 eklentiler, uzak sunucuda belirli \u00e7al\u0131\u015fma zaman\u0131 ortamlar\u0131n\u0131n (\u00f6rn. Python i\u00e7in Python yorumlay\u0131c\u0131s\u0131, Node.js i\u00e7in Node.js) y\u00fckl\u00fc olmas\u0131n\u0131 gerektirebilir. Bu ba\u011f\u0131ml\u0131l\u0131klar\u0131n uzak sunucuda kurulu oldu\u011fundan emin olun.<\/p>\n<h3>Performans Sorunlar\u0131<\/h3>\n<p>Uzak geli\u015ftirme yaparken yava\u015fl\u0131k veya gecikme hissi olu\u015fabilir.<\/p>\n<p>*   <strong>A\u011f Gecikmesi (Latency):<\/strong><br \/>\n    *   <strong>Neden:<\/strong> Yerel makineniz ile uzak sunucu aras\u0131ndaki a\u011f mesafesi veya kalitesi d\u00fc\u015f\u00fck.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> M\u00fcmk\u00fcnse sunucuya daha yak\u0131n bir konumdan ba\u011flan\u0131n veya daha stabil\/h\u0131zl\u0131 bir internet ba\u011flant\u0131s\u0131 kullan\u0131n. VPN kullan\u0131m\u0131 baz\u0131 durumlarda gecikmeyi art\u0131rabilir, baz\u0131 durumlarda ise iyile\u015ftirebilir.<br \/>\n*   <strong>Sunucu Kaynaklar\u0131n\u0131n Yetersizli\u011fi:<\/strong><br \/>\n    *   <strong>Neden:<\/strong> Uzak sunucunun CPU'su, RAM'i veya disk G\/\u00c7'si projenizin gereksinimlerini kar\u015f\u0131lam\u0131yor. \u00d6zellikle b\u00fcy\u00fck projelerde veya ayn\u0131 anda birden fazla geli\u015ftirici sunucuyu kulland\u0131\u011f\u0131nda bu sorun ortaya \u00e7\u0131kabilir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Sunucunun kaynak kullan\u0131m\u0131n\u0131 (CPU, RAM, disk I\/O) <\/code>top<code>, <\/code>htop<code>, <\/code>iostat<code> gibi komutlarla kontrol edin. Gerekirse sunucunun kaynaklar\u0131n\u0131 art\u0131r\u0131n (daha g\u00fc\u00e7l\u00fc bir sanal makineye y\u00fckseltin).<br \/>\n*   <strong>VS Code Server'\u0131n A\u015f\u0131r\u0131 Kaynak T\u00fcketimi:<\/strong><br \/>\n    *   <strong>Neden:<\/strong> \u00c7ok say\u0131da eklenti, b\u00fcy\u00fck dosyalar\u0131n indekslenmesi veya uzun s\u00fcre a\u00e7\u0131k kalan oturumlar VS Code Server'\u0131n kaynak t\u00fcketimini art\u0131rabilir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Gereksiz eklentileri devre d\u0131\u015f\u0131 b\u0131rak\u0131n. B\u00fcy\u00fck proje klas\u00f6rlerinde <\/code>files.watcherExclude<code> ve <\/code>search.exclude<code> gibi ayarlar\u0131 kullanarak VS Code'un belirli dizinleri izlemesini veya indekslemesini engelleyin. Bazen VS Code'u kapat\u0131p tekrar a\u00e7mak veya sunucu ba\u011flant\u0131s\u0131n\u0131 yeniden kurmak ge\u00e7ici sorunlar\u0131 \u00e7\u00f6zebilir.<\/p>\n<h3>VS Code Server Kurulum Hatalar\u0131<\/h3>\n<p>Uzak sunucuya ilk ba\u011fland\u0131\u011f\u0131n\u0131zda veya VS Code g\u00fcncellendi\u011finde VS Code Server'\u0131n kurulumu ba\u015far\u0131s\u0131z olabilir.<\/p>\n<p>*   <strong>\"Failed to install VS Code Server\" (VS Code Server kurulumu ba\u015far\u0131s\u0131z oldu):<\/strong><br \/>\n    *   <strong>Neden:<\/strong> Uzak sunucunun internet eri\u015fimi yok, gerekli ba\u011f\u0131ml\u0131l\u0131klar eksik (\u00f6rn. <\/code>wget<code>, <\/code>curl<code>, <\/code>tar<code>, <\/code>unzip<code>), yeterli disk alan\u0131 yok veya ge\u00e7ici a\u011f sorunlar\u0131.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n        *   Uzak sunucunun internet eri\u015fimi oldu\u011fundan emin olun (\u00f6rn. <\/code>ping google.com<code>).<br \/>\n        *   <\/code>Output<code> panelinde \"Log (Remote-SSH)\" \u00e7\u0131kt\u0131s\u0131n\u0131 kontrol ederek eksik ba\u011f\u0131ml\u0131l\u0131klar\u0131 veya hata mesajlar\u0131n\u0131 aray\u0131n. Gerekirse bu ba\u011f\u0131ml\u0131l\u0131klar\u0131 manuel olarak y\u00fckleyin (\u00f6rn. <\/code>sudo apt install wget curl tar unzip<code>).<br \/>\n        *   Uzak sunucuda yeterli disk alan\u0131 oldu\u011fundan emin olun (<\/code>df -h<code>).<br \/>\n        *   VS Code Server'\u0131n indirildi\u011fi <\/code>~\/.vscode-server<code> klas\u00f6r\u00fcn\u00fc manuel olarak silip yeniden ba\u011flanmay\u0131 deneyin. Bu, VS Code'un sunucuyu s\u0131f\u0131rdan indirmesini ve kurmas\u0131n\u0131 tetikleyecektir.<br \/>\n        *   Baz\u0131 durumlarda, sunucu mimarisi (\u00f6rn. ARM i\u015flemciler) i\u00e7in \u00f6zel VS Code Server derlemeleri gerekebilir. VS Code genellikle bunu otomatik olarak alg\u0131lar ancak nadiren sorunlar ya\u015fanabilir.<\/p>\n<p>Bu sorun giderme ad\u0131mlar\u0131, Remote-SSH ile kar\u015f\u0131la\u015fabilece\u011finiz \u00e7o\u011fu problemi \u00e7\u00f6zmenize yard\u0131mc\u0131 olacakt\u0131r. Sorun devam ederse, VS Code'un GitHub deposundaki sorunlar\u0131 veya ilgili forumlar\u0131 kontrol etmek faydal\u0131 olabilir.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Visual Studio Code'un Remote-SSH eklentisi, modern yaz\u0131l\u0131m geli\u015ftirme pratiklerini k\u00f6kten de\u011fi\u015ftiren, son derece g\u00fc\u00e7l\u00fc ve esnek bir ara\u00e7t\u0131r. Bu makale boyunca ele ald\u0131\u011f\u0131m\u0131z gibi, Remote-SSH, geli\u015ftiricilere uzak sunucular \u00fczerinde yerel bir geli\u015ftirme ortam\u0131nda \u00e7al\u0131\u015f\u0131yormu\u015f gibi sorunsuz bir deneyim sunar. G\u00fc\u00e7l\u00fc donan\u0131mlara eri\u015fim, geli\u015ftirme ortam\u0131 tutarl\u0131l\u0131\u011f\u0131, art\u0131r\u0131lm\u0131\u015f g\u00fcvenlik ve \u00fcst\u00fcn esneklik gibi avantajlar\u0131yla, Remote-SSH, g\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k ve da\u011f\u0131t\u0131k geli\u015ftirme ortamlar\u0131n\u0131n zorluklar\u0131n\u0131n \u00fcstesinden gelmek i\u00e7in vazge\u00e7ilmez bir \u00e7\u00f6z\u00fcm sunmaktad\u0131r.<\/p>\n<p>Temel kurulum ad\u0131mlar\u0131ndan SSH yap\u0131land\u0131rma optimizasyonuna, port y\u00f6nlendirme ve hata ay\u0131klamadan g\u00fcvenlik ipu\u00e7lar\u0131na kadar geni\u015f bir yelpazeyi kapsayan bu rehber, Remote-SSH'in potansiyelini tam olarak anlaman\u0131za ve kullanman\u0131za yard\u0131mc\u0131 olmay\u0131 ama\u00e7lam\u0131\u015ft\u0131r. \u0130ster y\u00fcksek performansl\u0131 bir bulut sunucusunda b\u00fcy\u00fck \u00f6l\u00e7ekli bir projede \u00e7al\u0131\u015f\u0131yor olun, ister bir Raspberry Pi \u00fczerinde g\u00f6m\u00fcl\u00fc sistemler geli\u015ftiriyor olun, Remote-SSH her senaryoda size yard\u0131mc\u0131 olacak ara\u00e7lar\u0131 sunar.<\/p>\n<p>S\u0131k kar\u015f\u0131la\u015f\u0131lan ba\u011flant\u0131, eklenti veya performans sorunlar\u0131na y\u00f6nelik \u00e7\u00f6z\u00fcmlerle, geli\u015ftiricilerin kar\u015f\u0131la\u015fabilece\u011fi engelleri a\u015fmalar\u0131na yard\u0131mc\u0131 olmay\u0131 hedefledik. Unutulmamal\u0131d\u0131r ki, SSH anahtarlar\u0131yla g\u00fcvenli ba\u011flant\u0131 kurmak ve <\/code>~\/.ssh\/config` dosyas\u0131n\u0131 etkin bir \u015fekilde y\u00f6netmek, Remote-SSH deneyiminizin kalitesini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde art\u0131racakt\u0131r.<\/p>\n<p>Sonu\u00e7 olarak, Visual Studio Code ve Remote-SSH kombinasyonu, geli\u015ftiricilere nerede olurlarsa olsunlar, herhangi bir uzak makinede verimli bir \u015fekilde kod yazma, test etme ve hata ay\u0131klama \u00f6zg\u00fcrl\u00fc\u011f\u00fc verir. Bu, yaln\u0131zca bireysel geli\u015ftiricilerin \u00fcretkenli\u011fini art\u0131rmakla kalmaz, ayn\u0131 zamanda ekiplerin daha tutarl\u0131 ve i\u015fbirli\u011fine dayal\u0131 bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayarak yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerini daha dinamik ve eri\u015filebilir hale getirir. Remote-SSH, \u015f\u00fcphesiz ki modern geli\u015ftirme ara\u00e7 setinin en \u00f6nemli par\u00e7alar\u0131ndan biridir ve her geli\u015ftiricinin ustala\u015fmas\u0131 gereken bir yetkinliktir.<\/p>\n<div class=\"github-example-link\"><strong>\u00d6rnek kod:<\/strong> <a href=\"https:\/\/github.com\/fatihsoysalcom\/simple-flask-remote-server-example\" target=\"_blank\" rel=\"noopener noreferrer\">github.com\/fatihsoysalcom\/simple-flask-remote-server-example<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda, geli\u015ftirme ortamlar\u0131n\u0131n esnekli\u011fi ve eri\u015filebilirli\u011fi giderek daha fazla \u00f6nem kazanmaktad\u0131r.","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-43631","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda, geli\u015ftirme ortamlar\u0131n\u0131n esnekli\u011fi ve eri\u015filebilirli\u011fi giderek daha fazla \u00f6nem kazanmaktad\u0131r.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-27T05:01:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-27T05:01:47+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"35 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber\",\"datePublished\":\"2026-07-27T05:01:22+00:00\",\"dateModified\":\"2026-07-27T05:01:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/\"},\"wordCount\":3408,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/\",\"name\":\"Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-07-27T05:01:22+00:00\",\"dateModified\":\"2026-07-27T05:01:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber","og_description":"Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda, geli\u015ftirme ortamlar\u0131n\u0131n esnekli\u011fi ve eri\u015filebilirli\u011fi giderek daha fazla \u00f6nem kazanmaktad\u0131r.","og_url":"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-07-27T05:01:22+00:00","article_modified_time":"2026-07-27T05:01:47+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"35 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber","datePublished":"2026-07-27T05:01:22+00:00","dateModified":"2026-07-27T05:01:47+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/"},"wordCount":3408,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/","name":"Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-07-27T05:01:22+00:00","dateModified":"2026-07-27T05:01:47+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/visual-studio-code-ile-remote-ssh-uzerinden-uzak-sunucularda-gelistirme-kapsamli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Visual Studio Code ile Remote-SSH \u00dczerinden Uzak Sunucularda Geli\u015ftirme: Kapsaml\u0131 Bir Rehber"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/43631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=43631"}],"version-history":[{"count":2,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/43631\/revisions"}],"predecessor-version":[{"id":43633,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/43631\/revisions\/43633"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=43631"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=43631"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=43631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}