{"id":38468,"date":"2026-01-31T18:00:41","date_gmt":"2026-01-31T15:00:41","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/"},"modified":"2026-01-31T18:00:41","modified_gmt":"2026-01-31T15:00:41","slug":"vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/","title":{"rendered":"VS Code Devcontainer&#8217;da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz"},"content":{"rendered":"<h2>VS Code Devcontainer&#8217;da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz<\/h2>\n<p>Geli\u015ftirme s\u00fcre\u00e7lerimizde izolasyon, tutarl\u0131l\u0131k ve verimlilik aray\u0131\u015f\u0131, Devcontainer&#8217;lar gibi ara\u00e7lar\u0131 vazge\u00e7ilmez k\u0131l\u0131yor. Ancak, bu izole ortamlar i\u00e7erisinde SSH anahtarlar\u0131n\u0131 y\u00f6netmek ve \u00f6zellikle harici bir terminalden bu anahtarlara g\u00fcvenli bir \u015fekilde eri\u015fmek, \u00e7o\u011fu zaman karma\u015f\u0131k bir hal alabiliyor. Bu makale, VS Code Devcontainer&#8217;\u0131n\u0131zda \u00e7al\u0131\u015fan bir SSH agent&#8217;\u0131, harici bir terminal oturumundan nas\u0131l verimli ve g\u00fcvenli bir \u015fekilde kullanaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayacakt\u0131r.<\/p>\n<h3>Devcontainer ve SSH Agent Neden \u00d6nemli?<\/h3>\n<p>Modern yaz\u0131l\u0131m geli\u015ftirme pratiklerinde, farkl\u0131 projeler i\u00e7in farkl\u0131 ba\u011f\u0131ml\u0131l\u0131klar ve ortamlar gerekebilir. Devcontainer&#8217;lar, bu ihtiyac\u0131 kar\u015f\u0131layarak her proje i\u00e7in izole, tutarl\u0131 ve ta\u015f\u0131nabilir bir geli\u015ftirme ortam\u0131 sunar. SSH agent ise, \u015fifrelenmi\u015f SSH anahtarlar\u0131n\u0131z\u0131 bellekte tutarak her ba\u011flant\u0131da \u015fifrenizi tekrar girme zahmetinden kurtaran, g\u00fcvenli ve kullan\u0131\u015fl\u0131 bir ara\u00e7t\u0131r. Bu ikilinin birle\u015fimi, geli\u015ftirme i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131r\u0131r ve g\u00fcvenlik seviyesini art\u0131r\u0131r.<\/p>\n<h4>Geli\u015ftirme Ortam\u0131 \u0130zolasyonu<\/h4>\n<p>Devcontainer&#8217;lar, projenizin ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 ve ara\u00e7lar\u0131n\u0131 ana sisteminizden izole eder. Bu sayede, &#8220;makinemde \u00e7al\u0131\u015f\u0131yor ama sunucuda \u00e7al\u0131\u015fm\u0131yor&#8221; gibi sorunlar ortadan kalkar ve farkl\u0131 projeler aras\u0131nda \u00e7ak\u0131\u015fmalar ya\u015fanmaz. Her geli\u015ftirici ayn\u0131 ortamda \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in ekip i\u00e7i tutarl\u0131l\u0131k da sa\u011flan\u0131r.<\/p>\n<h4>G\u00fcvenlik ve Anahtar Y\u00f6netimi<\/h4>\n<p>SSH anahtarlar\u0131, uzak sunuculara, Git depolar\u0131na veya bulut hizmetlerine eri\u015fim i\u00e7in kritik \u00f6neme sahiptir. SSH agent, anahtarlar\u0131n\u0131z\u0131 bir kez y\u00fckledikten sonra, siz oturumu kapatana veya agent&#8217;\u0131 durdurana kadar bellekte tutar. Bu, hassas anahtarlar\u0131n\u0131z\u0131n diskte \u015fifresiz kalmas\u0131n\u0131 \u00f6nler ve her kullan\u0131mda \u015fifre girme ihtiyac\u0131n\u0131 ortadan kald\u0131rarak g\u00fcvenli\u011fi ve kullan\u0131m kolayl\u0131\u011f\u0131n\u0131 birle\u015ftirir.<\/p>\n<h4>Verimlilik ve Otomasyon<\/h4>\n<p>SSH agent&#8217;\u0131n sa\u011flad\u0131\u011f\u0131 otomatik kimlik do\u011frulama, \u00f6zellikle s\u0131k s\u0131k uzak kaynaklara eri\u015fim gerektiren Git i\u015flemleri (push\/pull), sunucu y\u00f6netimi veya CI\/CD s\u00fcre\u00e7leri gibi durumlarda geli\u015ftirme verimlili\u011fini art\u0131r\u0131r. Devcontainer i\u00e7inde bu yap\u0131land\u0131rmay\u0131 sa\u011flamak, geli\u015ftirme ortam\u0131n\u0131z\u0131 daha da otomatize eder.<\/p>\n<h3>SSH Agent Temelleri ve Devcontainer Entegrasyonu<\/h3>\n<p>SSH agent, SSH ba\u011flant\u0131lar\u0131 i\u00e7in kimlik do\u011frulama bilgilerini (anahtarlar\u0131) y\u00f6neten bir arka plan i\u015flemidir. Devcontainer i\u00e7inde bu agent&#8217;\u0131 ba\u015flatmak ve anahtarlar\u0131n\u0131z\u0131 ona eklemek, uzak kaynaklara eri\u015fimin temelini olu\u015fturur.<\/p>\n<h4>SSH Agent Nedir ve Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h4>\n<p>SSH agent, \u015fifrelenmi\u015f SSH anahtarlar\u0131n\u0131z\u0131 g\u00fcvenli bir \u015fekilde bellekte saklayan bir programd\u0131r. SSH istemcisi (\u00f6rne\u011fin <code>ssh<\/code> komutu veya <code>git<\/code> gibi ara\u00e7lar), uzak bir sunucuya ba\u011flanmak istedi\u011finde, kimlik do\u011frulama i\u00e7in do\u011frudan agent ile ileti\u015fime ge\u00e7er. Agent, anahtar\u0131 kullanarak kimlik do\u011frulamas\u0131n\u0131 ger\u00e7ekle\u015ftirir ve istemciye sonucu bildirir. Bu ileti\u015fim, genellikle <code>SSH_AUTH_SOCK<\/code> adl\u0131 bir ortam de\u011fi\u015fkeni ile belirtilen bir Unix soketi \u00fczerinden ger\u00e7ekle\u015fir.<\/p>\n<h4><code>devcontainer.json<\/code> ile Agent Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Devcontainer&#8217;\u0131n\u0131z\u0131n <code>devcontainer.json<\/code> dosyas\u0131, ortam\u0131n nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 ve yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 belirler. SSH agent entegrasyonu i\u00e7in bu dosya kritik rol oynar. \u00d6zellikle, host makinenizdeki SSH agent&#8217;\u0131 devcontainer&#8217;a y\u00f6nlendirmek i\u00e7in <code>forwardPorts<\/code> ve <code>remoteEnv<\/code> gibi se\u00e7enekler kullan\u0131labilir. Ancak biz burada agent&#8217;\u0131 devcontainer i\u00e7inde ba\u015flatmay\u0131 ele alaca\u011f\u0131z. Bunun i\u00e7in <code>postCreateCommand<\/code> veya <code>onCreateCommand<\/code> gibi ya\u015fam d\u00f6ng\u00fcs\u00fc komutlar\u0131ndan faydalan\u0131r\u0131z.<\/p>\n<pre><code class=\"language-json\">\n{\n  \"name\": \"My Devcontainer\",\n  \"image\": \"mcr.microsoft.com\/devcontainers\/universal:latest\",\n  \"features\": {\n    \"ghcr.io\/devcontainers\/features\/sshd:1\": {\n      \"version\": \"latest\"\n    }\n  },\n  \"postCreateCommand\": \"eval \\\"$(ssh-agent -s)\\\" && echo \\\"export SSH_AUTH_SOCK=$SSH_AUTH_SOCK\\\" >> ~\/.bashrc && echo \\\"export SSH_AGENT_PID=$SSH_AGENT_PID\\\" >> ~\/.bashrc\",\n  \"remoteEnv\": {\n    \"SSH_AUTH_SOCK\": \"${containerEnv:SSH_AUTH_SOCK}\",\n    \"SSH_AGENT_PID\": \"${containerEnv:SSH_AGENT_PID}\"\n  },\n  \"customizations\": {\n    \"vscode\": {\n      \"extensions\": [\n        \"ms-vscode.remote-ssh\"\n      ]\n    }\n  }\n}\n<\/pre>\n<p><\/code><br \/>\nYukar\u0131daki \u00f6rnekte, <code>postCreateCommand<\/code> ile bir SSH agent ba\u015flat\u0131l\u0131r ve <code>SSH_AUTH_SOCK<\/code> ile <code>SSH_AGENT_PID<\/code> de\u011fi\u015fkenleri <code>.bashrc<\/code> dosyas\u0131na eklenerek kal\u0131c\u0131 hale getirilir. <code>remoteEnv<\/code> k\u0131sm\u0131 ise bu de\u011fi\u015fkenlerin VS Code taraf\u0131ndan da alg\u0131lanmas\u0131n\u0131 sa\u011flar.<\/p>\n<h4>Anahtar Ekleme ve Ya\u015fam D\u00f6ng\u00fcs\u00fc<\/h4>\n<p>SSH agent'\u0131 ba\u015flatt\u0131ktan sonra, kullanmak istedi\u011finiz anahtarlar\u0131 <code>ssh-add<\/code> komutuyla eklemeniz gerekir. Bu i\u015flemi de <code>postCreateCommand<\/code> i\u00e7inde yapabilirsiniz, ancak anahtarlar genellikle hassas oldu\u011fu i\u00e7in otomatik ekleme yerine manuel ekleme veya daha g\u00fcvenli y\u00f6ntemler tercih edilir.<\/p>\n<pre><code class=\"language-bash\">\n# Devcontainer i\u00e7inde bir terminal a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n\neval \"$(ssh-agent -s)\" # E\u011fer agent zaten \u00e7al\u0131\u015fm\u0131yorsa ba\u015flat\u0131r\nssh-add ~\/.ssh\/id_rsa # \u00d6zel anahtar\u0131n\u0131z\u0131 ekleyin. \u015eifre sorulacakt\u0131r.\nssh-add -l # Eklenen anahtarlar\u0131 listeler\n<\/pre>\n<p><\/code><br \/>\nBu komutlar, agent'\u0131 ba\u015flat\u0131r (e\u011fer zaten \u00e7al\u0131\u015fm\u0131yorsa) ve <code>id_rsa<\/code> anahtar\u0131n\u0131z\u0131 ekler. Anahtar\u0131n\u0131z\u0131n bir parolas\u0131 varsa, bu ad\u0131mda parolan\u0131z\u0131 girmeniz istenecektir.<\/p>\n<h3>Harici Terminal Kavram\u0131 ve Ba\u011flant\u0131 Senaryolar\u0131<\/h3>\n<p>\"Harici terminal\", VS Code'un entegre terminali d\u0131\u015f\u0131nda, devcontainer'\u0131n\u0131za ba\u011flanan herhangi bir terminal oturumunu ifade eder. Bu, host makinenizden <code>docker exec<\/code> ile do\u011frudan konteynere ba\u011flanmak veya konteyner i\u00e7inde \u00e7al\u0131\u015fan bir SSH sunucusuna SSH ile ba\u011flanmak gibi senaryolar\u0131 kapsayabilir.<\/p>\n<h4>Harici Terminal Nedir?<\/h4>\n<p>Harici terminal, genellikle host makinenizde a\u00e7t\u0131\u011f\u0131n\u0131z bir terminal penceresinden <code>docker exec -it <container_id> bash<\/code> gibi bir komutla devcontainer'\u0131n\u0131z\u0131n i\u00e7ine ba\u011fland\u0131\u011f\u0131n\u0131z bir oturumdur. Bu t\u00fcr bir ba\u011flant\u0131, VS Code'un kendi entegre terminalinden ba\u011f\u0131ms\u0131zd\u0131r ve dolay\u0131s\u0131yla VS Code'un otomatik olarak ayarlad\u0131\u011f\u0131 ortam de\u011fi\u015fkenlerinden do\u011frudan faydalanamayabilir.<\/p>\n<h4>Ortam De\u011fi\u015fkenlerinin Payla\u015f\u0131m\u0131 Sorunu<\/h4>\n<p>Bir SSH agent'\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015fabilmesi i\u00e7in <code>SSH_AUTH_SOCK<\/code> ortam de\u011fi\u015fkeninin do\u011fru \u015fekilde ayarlanm\u0131\u015f olmas\u0131 gerekir. Bu de\u011fi\u015fken, SSH istemcisine agent'\u0131n Unix soketinin nerede oldu\u011funu bildirir. Harici bir terminal oturumu ba\u015flatt\u0131\u011f\u0131n\u0131zda, bu de\u011fi\u015fkenin otomatik olarak ayarlanmam\u0131\u015f olmas\u0131 muhtemeldir. Bu da SSH agent'\u0131 kullanamaman\u0131za yol a\u00e7ar.<\/p>\n<h4>G\u00fcvenlik ve \u0130zolasyon \u0130htiya\u00e7lar\u0131<\/h4>\n<p>Ortam de\u011fi\u015fkenlerini payla\u015f\u0131rken g\u00fcvenlik hususlar\u0131 \u00f6nemlidir. <code>SSH_AUTH_SOCK<\/code> de\u011ferini rastgele bir \u015fekilde if\u015fa etmek, yetkisiz eri\u015fim riskleri ta\u015f\u0131yabilir. Bu nedenle, payla\u015f\u0131m mekanizmas\u0131n\u0131n g\u00fcvenli ve kontroll\u00fc olmas\u0131 gerekir.<\/p>\n<h3>Devcontainer \u0130\u00e7indeki SSH Agent'a Harici Terminalden Eri\u015fim<\/h3>\n<p>Devcontainer i\u00e7inde \u00e7al\u0131\u015fan SSH agent'a harici bir terminalden eri\u015fmek i\u00e7in, <code>SSH_AUTH_SOCK<\/code> ortam de\u011fi\u015fkenini do\u011fru bir \u015fekilde aktarmam\u0131z gerekmektedir.<\/p>\n<h4><code>SSH_AUTH_SOCK<\/code> De\u011fi\u015fkenini Bulma<\/h4>\n<p>\u00d6ncelikle, devcontainer i\u00e7inde \u00e7al\u0131\u015fan SSH agent'\u0131n soket yolunu bulmam\u0131z gerekiyor. Bu genellikle <code>\/tmp\/ssh-XXXXXX\/agent.YYYY<\/code> gibi bir yolda bulunur. Bu de\u011feri, devcontainer i\u00e7inde \u00e7al\u0131\u015fan bir terminalden <code>echo $SSH_AUTH_SOCK<\/code> komutuyla alabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">\n# Devcontainer i\u00e7indeki VS Code terminalinde \u00e7al\u0131\u015ft\u0131r\u0131n\necho $SSH_AUTH_SOCK\n# \u00d6rnek \u00e7\u0131kt\u0131: \/tmp\/ssh-XXXXXX\/agent.YYYY\n<\/pre>\n<p><\/code><\/p>\n<h4>Harici Terminal Oturumuna Ortam De\u011fi\u015fkeni Aktar\u0131m\u0131 (\u00d6rnek: <code>docker exec<\/code>)<\/h4>\n<p>Harici terminalden devcontainer'a ba\u011flan\u0131rken, <code>SSH_AUTH_SOCK<\/code> de\u011ferini manuel olarak veya bir ba\u015flang\u0131\u00e7 komutuyla aktarabiliriz.<\/p>\n<p><strong>Y\u00f6ntem 1: Tek Seferlik Aktar\u0131m<\/strong><br \/>\nE\u011fer <code>SSH_AUTH_SOCK<\/code> de\u011ferini biliyorsan\u0131z, <code>docker exec<\/code> komutuna do\u011frudan ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">\n# Host makinenizde \u00e7al\u0131\u015ft\u0131r\u0131n\nCONTAINER_ID=$(docker ps -aqf \"name=your_devcontainer_name\") # Devcontainer ID'sini bulun\nSSH_SOCK_PATH=\"\/tmp\/ssh-XXXXXX\/agent.YYYY\" # Devcontainer i\u00e7indeki SSH_AUTH_SOCK de\u011ferini buraya girin\n\ndocker exec -it -e SSH_AUTH_SOCK=$SSH_SOCK_PATH $CONTAINER_ID bash\n<\/pre>\n<p><\/code><br \/>\nBu y\u00f6ntem, <code>SSH_AUTH_SOCK<\/code> de\u011ferinin her seferinde manuel olarak bulunup girilmesini gerektirir.<\/p>\n<p><strong>Y\u00f6ntem 2: Otomatik Aktar\u0131m (Kal\u0131c\u0131 \u00c7\u00f6z\u00fcm)<\/strong><br \/>\nDaha kal\u0131c\u0131 bir \u00e7\u00f6z\u00fcm i\u00e7in, devcontainer'\u0131n ba\u015flang\u0131c\u0131nda veya <code>.bashrc<\/code> gibi kabuk yap\u0131land\u0131rma dosyalar\u0131nda <code>SSH_AUTH_SOCK<\/code> de\u011ferini bir dosyaya yazd\u0131rabilir ve harici terminalden bu dosyay\u0131 okuyabilirsiniz.<\/p>\n<p>1.  <strong>Devcontainer i\u00e7inde:<\/strong> <code>postCreateCommand<\/code> veya benzer bir komutla <code>SSH_AUTH_SOCK<\/code> de\u011ferini bilinen bir yola yazd\u0131r\u0131n.<br \/>\n    <code>devcontainer.json<\/code> i\u00e7inde:<\/p>\n<pre><code class=\"language-json\">\n    {\n      \/\/ ... di\u011fer ayarlar ...\n      \"postCreateCommand\": \"eval \\\"$(ssh-agent -s)\\\" && echo \\\"export SSH_AUTH_SOCK=$SSH_AUTH_SOCK\\\" > \/tmp\/ssh_auth_sock_path && echo \\\"export SSH_AGENT_PID=$SSH_AGENT_PID\\\" > \/tmp\/ssh_agent_pid_path\",\n      \/\/ ...\n    }\n    <\/pre>\n<p><\/code><br \/>\n2.  <strong>Host makineden harici terminale ba\u011flan\u0131rken:<\/strong> Bu dosyay\u0131 okuyarak ortam de\u011fi\u015fkenini ayarlay\u0131n.<\/p>\n<pre><code class=\"language-bash\">\n    # Host makinenizde \u00e7al\u0131\u015ft\u0131r\u0131n\n    CONTAINER_ID=$(docker ps -aqf \"name=your_devcontainer_name\")\n    \n    # SSH_AUTH_SOCK de\u011ferini konteynerden okuyun\n    SSH_SOCK_PATH=$(docker exec $CONTAINER_ID cat \/tmp\/ssh_auth_sock_path | cut -d'=' -f2)\n    \n    # Harici terminal oturumunu ba\u015flat\u0131n\n    docker exec -it -e SSH_AUTH_SOCK=$SSH_SOCK_PATH $CONTAINER_ID bash\n    <\/pre>\n<p><\/code><br \/>\nBu y\u00f6ntem, <code>SSH_AUTH_SOCK<\/code> de\u011ferinin dinamik olarak bulunmas\u0131n\u0131 ve harici terminal oturumuna aktar\u0131lmas\u0131n\u0131 sa\u011flar.<\/p>\n<h4>Host Makineden Devcontainer Agent'\u0131na Eri\u015fmek (\u0130leri D\u00fczey: <code>socat<\/code> veya SSH T\u00fcnelleme)<\/h4>\n<p>E\u011fer host makinenizdeki bir uygulamadan (\u00f6rne\u011fin host'taki bir Git istemcisi) devcontainer i\u00e7indeki SSH agent'\u0131 kullanmak isterseniz, bu daha karma\u015f\u0131k bir senaryodur. Genellikle bu durumda host'taki agent'\u0131 devcontainer'a y\u00f6nlendirmek daha yayg\u0131n olsa da, tam tersi i\u00e7in <code>socat<\/code> veya SSH t\u00fcnelleme kullan\u0131labilir.<\/p>\n<p>*   <strong><code>socat<\/code> ile Soket Y\u00f6nlendirme:<\/strong> Devcontainer i\u00e7indeki SSH agent soketini, host makinenizde bir ba\u015fka sokete y\u00f6nlendirebilirsiniz. Bu, karma\u015f\u0131k a\u011f yap\u0131land\u0131rmalar\u0131 ve g\u00fcvenlik riskleri gerektirebilir.<br \/>\n*   <strong>SSH T\u00fcnelleme:<\/strong> Devcontainer i\u00e7inde bir SSH sunucusu \u00e7al\u0131\u015ft\u0131r\u0131p, bu sunucu \u00fczerinden host'a bir t\u00fcnel a\u00e7arak agent soketini iletebilirsiniz. Bu da genellikle karma\u015f\u0131k bir kurulum gerektirir ve \u00e7o\u011fu durumda host agent'\u0131n\u0131 devcontainer'a y\u00f6nlendirmek daha pratik bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<p>Bu makalenin ana oda\u011f\u0131, agent'\u0131n devcontainer i\u00e7inde oldu\u011fu ve harici terminalin de devcontainer'a ba\u011fland\u0131\u011f\u0131 senaryo oldu\u011fu i\u00e7in bu ileri d\u00fczey y\u00f6ntemlere detayl\u0131 girilmeyecektir.<\/p>\n<h3>Pratik Uygulama Ad\u0131mlar\u0131 ve Yap\u0131land\u0131rma \u00d6rnekleri<\/h3>\n<p>\u015eimdiye kadar \u00f6\u011frendiklerimizi bir araya getirerek, devcontainer ve harici terminal ortam\u0131nda SSH agent kullan\u0131m\u0131n\u0131 ad\u0131m ad\u0131m uygulayal\u0131m.<\/p>\n<h4><code>devcontainer.json<\/code> Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Devcontainer'\u0131n\u0131z\u0131n <code>devcontainer.json<\/code> dosyas\u0131n\u0131 a\u015fa\u011f\u0131daki gibi g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-json\">\n{\n  \"name\": \"SSH Agent Devcontainer\",\n  \"image\": \"mcr.microsoft.com\/devcontainers\/universal:latest\",\n  \"features\": {\n    \"ghcr.io\/devcontainers\/features\/sshd:1\": {\n      \"version\": \"latest\"\n    }\n  },\n  \"postCreateCommand\": \"eval \\\"$(ssh-agent -s)\\\" && echo \\\"export SSH_AUTH_SOCK=$SSH_AUTH_SOCK\\\" > \/tmp\/ssh_auth_sock_path && echo \\\"export SSH_AGENT_PID=$SSH_AGENT_PID\\\" > \/tmp\/ssh_agent_pid_path && chmod 600 \/tmp\/ssh_auth_sock_path \/tmp\/ssh_agent_pid_path\",\n  \"remoteEnv\": {\n    \"SSH_AUTH_SOCK\": \"${containerEnv:SSH_AUTH_SOCK}\",\n    \"SSH_AGENT_PID\": \"${containerEnv:SSH_AGENT_PID}\"\n  },\n  \"customizations\": {\n    \"vscode\": {\n      \"extensions\": [\n        \"ms-vscode.remote-ssh\"\n      ]\n    }\n  },\n  \"containerUser\": \"vscode\" \/\/ G\u00fcvenlik i\u00e7in belirli bir kullan\u0131c\u0131 kullan\u0131n\n}\n<\/pre>\n<p><\/code><br \/>\nBu yap\u0131land\u0131rma, devcontainer olu\u015fturulduktan sonra bir SSH agent ba\u015flat\u0131r ve <code>SSH_AUTH_SOCK<\/code> ile <code>SSH_AGENT_PID<\/code> de\u011ferlerini <code>\/tmp\/ssh_auth_sock_path<\/code> ve <code>\/tmp\/ssh_agent_pid_path<\/code> dosyalar\u0131na yazar. <code>chmod 600<\/code> ile bu dosyalar\u0131n sadece sahibi taraf\u0131ndan okunabilir olmas\u0131n\u0131 sa\u011flayarak g\u00fcvenli\u011fi art\u0131r\u0131r\u0131z.<\/p>\n<h4>Devcontainer Ba\u015flang\u0131\u00e7 Komut Dosyalar\u0131<\/h4>\n<p>Devcontainer'\u0131 yeniden olu\u015fturun veya ilk kez olu\u015fturun. VS Code, <code>postCreateCommand<\/code> komutunu \u00e7al\u0131\u015ft\u0131racakt\u0131r.<br \/>\nDevcontainer i\u00e7indeki VS Code terminalinden:<\/p>\n<pre><code class=\"language-bash\">\n# Anahtar\u0131n\u0131z\u0131 agent'a ekleyin\nssh-add ~\/.ssh\/id_rsa \n# (E\u011fer anahtar\u0131n\u0131z\u0131n parolas\u0131 varsa, bu ad\u0131mda girmeniz istenecektir.)\n\n# Eklenen anahtarlar\u0131 kontrol edin\nssh-add -l\n<\/pre>\n<p><\/code><br \/>\nBu ad\u0131mlar\u0131 tamamlad\u0131\u011f\u0131n\u0131zda, devcontainer i\u00e7indeki VS Code terminalinizde SSH agent d\u00fczg\u00fcn bir \u015fekilde \u00e7al\u0131\u015f\u0131yor ve anahtarlar\u0131n\u0131z eklenmi\u015f olmal\u0131d\u0131r.<\/p>\n<h4>Harici Terminalden Ba\u011flant\u0131y\u0131 Test Etme<\/h4>\n<p>\u015eimdi host makinenizden harici bir terminal a\u00e7\u0131n ve a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyerek devcontainer'\u0131n\u0131zdaki SSH agent'\u0131 kullan\u0131n:<\/p>\n<p>1.  <strong>Devcontainer ID'sini bulun:<\/strong><\/p>\n<pre><code class=\"language-bash\">\n    docker ps\n    # \u00c7\u0131kt\u0131dan devcontainer'\u0131n\u0131z\u0131n CONTAINER ID'sini veya NAME'ini bulun.\n    # \u00d6rne\u011fin: d9f1e2a3b4c5\n    <\/pre>\n<p><\/code><\/p>\n<p>2.  <strong><code>SSH_AUTH_SOCK<\/code> de\u011ferini al\u0131n:<\/strong><\/p>\n<pre><code class=\"language-bash\">\n    CONTAINER_ID=\"d9f1e2a3b4c5\" # Kendi container ID'nizle de\u011fi\u015ftirin\n    SSH_SOCK_PATH=$(docker exec $CONTAINER_ID cat \/tmp\/ssh_auth_sock_path | cut -d'=' -f2)\n    echo \"SSH_AUTH_SOCK de\u011feri: $SSH_SOCK_PATH\"\n    <\/pre>\n<p><\/code><\/p>\n<p>3.  <strong>Harici terminal oturumunu ba\u015flat\u0131n ve agent'\u0131 kullan\u0131n:<\/strong><\/p>\n<pre><code class=\"language-bash\">\n    docker exec -it -e SSH_AUTH_SOCK=$SSH_SOCK_PATH $CONTAINER_ID bash\n    <\/pre>\n<p><\/code><br \/>\n    Art\u0131k harici terminal oturumunuz devcontainer i\u00e7indeki SSH agent'a ba\u011fl\u0131d\u0131r. Bu oturumda <code>git clone git@github.com:user\/repo.git<\/code> gibi SSH anahtar\u0131 gerektiren komutlar\u0131, anahtar parolas\u0131n\u0131 tekrar girmeden \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<p>4.  <strong>Test edin:<\/strong><br \/>\n    Harici terminalde (devcontainer i\u00e7inde):<\/p>\n<pre><code class=\"language-bash\">\n    ssh-add -l # Agent'a eklenen anahtarlar\u0131 listelemeli\n    git clone git@github.com:your_user\/your_repo.git # SSH ile Git deposunu klonlamay\u0131 deneyin\n    <\/pre>\n<p><\/code><br \/>\n    Bu komutlar sorunsuz \u00e7al\u0131\u015f\u0131yorsa, harici terminalinizden devcontainer i\u00e7indeki SSH agent'\u0131 ba\u015far\u0131yla kullan\u0131yorsunuz demektir.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>SSH agent ve devcontainer entegrasyonunda kar\u015f\u0131la\u015f\u0131labilecek baz\u0131 yayg\u0131n sorunlar ve bunlar\u0131n \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4><code>SSH_AUTH_SOCK<\/code> Bulunam\u0131yor Hatas\u0131<\/h4>\n<p>*   <strong>Sorun:<\/strong> <code>SSH_AUTH_SOCK<\/code> ortam de\u011fi\u015fkeni ayarlanmam\u0131\u015f veya yanl\u0131\u015f.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>devcontainer.json<\/code> i\u00e7indeki <code>postCreateCommand<\/code>'\u0131n do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ve <code>SSH_AUTH_SOCK<\/code> de\u011ferini bir dosyaya yazd\u0131\u011f\u0131ndan emin olun. Harici terminalden ba\u011flan\u0131rken bu dosyay\u0131 okuyup de\u011fi\u015fkeni do\u011fru aktard\u0131\u011f\u0131n\u0131zdan emin olun. Devcontainer'\u0131 yeniden olu\u015fturmay\u0131 deneyin.<\/p>\n<h4>Yetkilendirme Reddedildi (<code>Permission denied (publickey)<\/code>)<\/h4>\n<p>*   <strong>Sorun:<\/strong> SSH agent'a anahtar eklenmemi\u015f, yanl\u0131\u015f anahtar eklenmi\u015f veya uzak sunucuda genel anahtar\u0131n\u0131z bulunmuyor.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Devcontainer i\u00e7indeki VS Code terminalinden <code>ssh-add -l<\/code> komutuyla anahtarlar\u0131n ekli olup olmad\u0131\u011f\u0131n\u0131 kontrol edin. Gerekirse <code>ssh-add ~\/.ssh\/id_rsa<\/code> ile anahtar\u0131n\u0131z\u0131 ekleyin. Uzak sunucunuzda (GitHub, GitLab vb.) genel anahtar\u0131n\u0131z\u0131n (<code>id_rsa.pub<\/code>) kay\u0131tl\u0131 oldu\u011fundan emin olun.<\/p>\n<h4>Agent Ba\u015flat\u0131lam\u0131yor<\/h4>\n<p>*   <strong>Sorun:<\/strong> <code>ssh-agent -s<\/code> komutu bir hata veriyor veya agent d\u00fczg\u00fcn ba\u015flam\u0131yor.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Devcontainer imaj\u0131n\u0131zda <code>ssh-agent<\/code> y\u00fckl\u00fc oldu\u011fundan emin olun. Gerekirse <code>apt-get install openssh-client<\/code> gibi bir komutla y\u00fckleyin. <code>devcontainer.json<\/code> i\u00e7indeki <code>postCreateCommand<\/code>'\u0131n s\u00f6zdizimini kontrol edin.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>VS Code Devcontainer'lar, modern geli\u015ftirme ortamlar\u0131n\u0131n karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 basitle\u015ftiren g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r. Bu izole ortamlarda SSH agent'\u0131 etkin bir \u015fekilde kullanmak ve \u00f6zellikle harici terminal oturumlar\u0131ndan bu agent'a eri\u015fimi sa\u011flamak, geli\u015ftirme i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131r\u0131r ve g\u00fcvenlik seviyenizi art\u0131r\u0131r. Bu makalede sunulan ad\u0131mlar\u0131 ve \u00f6rnekleri takip ederek, devcontainer'\u0131n\u0131zda SSH agent'\u0131 g\u00fcvenli ve verimli bir \u015fekilde yap\u0131land\u0131rabilir, b\u00f6ylece uzak kaynaklara eri\u015fim s\u00fcre\u00e7lerinizi sorunsuz hale getirebilirsiniz. Unutmay\u0131n, g\u00fcvenlik her zaman \u00f6nceliklidir; bu nedenle anahtarlar\u0131n\u0131z\u0131 dikkatli y\u00f6netmeli ve sadece g\u00fcvendi\u011finiz ortamlarda kullanmal\u0131s\u0131n\u0131z.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<p><strong>1. Devcontainer'da neden SSH agent kullanmal\u0131y\u0131m?<\/strong><br \/>\nSSH agent, \u015fifrelenmi\u015f SSH anahtarlar\u0131n\u0131z\u0131 g\u00fcvenli bir \u015fekilde bellekte tutarak her uzak ba\u011flant\u0131da (Git, sunucu eri\u015fimi vb.) \u015fifrenizi tekrar girme zahmetinden kurtar\u0131r. Bu, hem g\u00fcvenli\u011fi art\u0131r\u0131r (anahtar diske \u015fifresiz yaz\u0131lmaz) hem de geli\u015ftirme verimlili\u011fini y\u00fckseltir.<\/p>\n<p><strong>2. Harici terminalden ba\u011flanmak ne anlama geliyor?<\/strong><br \/>\nHarici terminal, VS Code'un entegre terminali d\u0131\u015f\u0131nda, host makinenizden <code>docker exec<\/code> gibi bir komutla do\u011frudan devcontainer'\u0131n\u0131z\u0131n i\u00e7ine a\u00e7t\u0131\u011f\u0131n\u0131z ayr\u0131 bir terminal oturumudur. Bu oturum, VS Code'un ortam de\u011fi\u015fkenlerini otomatik olarak devralmayabilir.<\/p>\n<p><strong>3. SSH anahtarlar\u0131m\u0131 devcontainer i\u00e7inde mi tutmal\u0131y\u0131m?<\/strong><br \/>\nGenellikle, SSH anahtarlar\u0131n\u0131z\u0131 host makinenizde tutmak ve <code>ssh-agent forwarding<\/code> \u00f6zelli\u011fini kullanarak devcontainer'a y\u00f6nlendirmek daha g\u00fcvenli kabul edilir. Ancak bu makalede, agent'\u0131n devcontainer i\u00e7inde ba\u015flat\u0131ld\u0131\u011f\u0131 senaryo ele al\u0131nm\u0131\u015ft\u0131r. E\u011fer anahtarlar\u0131n\u0131z\u0131 devcontainer i\u00e7inde tutuyorsan\u0131z, bunlar\u0131 dikkatlice y\u00f6netmeli ve konteyner imaj\u0131na g\u00f6mmemelisiniz.<\/p>\n<p><strong>4. G\u00fcvenlik riskleri var m\u0131?<\/strong><br \/>\nEvet, <code>SSH_AUTH_SOCK<\/code> ortam de\u011fi\u015fkenini yanl\u0131\u015fl\u0131kla veya kontrols\u00fcz bir \u015fekilde if\u015fa etmek, yetkisiz kullan\u0131c\u0131lar\u0131n SSH agent'\u0131n\u0131za eri\u015fmesine ve sizin ad\u0131n\u0131za kimlik do\u011frulamas\u0131 yapmas\u0131na olanak tan\u0131yabilir. Bu nedenle, <code>SSH_AUTH_SOCK<\/code> de\u011ferini yazd\u0131\u011f\u0131n\u0131z dosyalar\u0131n izinlerini k\u0131s\u0131tlamak (\u00f6rne\u011fin <code>chmod 600<\/code>) ve sadece g\u00fcvenilir oturumlarla payla\u015fmak \u00f6nemlidir.<\/p>\n<p><strong>5. <code>socat<\/code> kullanmak \u015fart m\u0131?<\/strong><br \/>\nBu makalede ele al\u0131nan senaryo i\u00e7in (<code>docker exec<\/code> ile devcontainer'a ba\u011flan\u0131p devcontainer i\u00e7indeki agent'\u0131 kullanmak), <code>socat<\/code> kullanmak \u015fart de\u011fildir. <code>socat<\/code>, daha \u00e7ok host makineden devcontainer i\u00e7indeki bir agent'a eri\u015fmek gibi daha karma\u015f\u0131k soket y\u00f6nlendirme senaryolar\u0131nda kullan\u0131l\u0131r. Bu makalede <code>SSH_AUTH_SOCK<\/code> de\u011fi\u015fkenini aktarma y\u00f6ntemi yeterlidir.<\/p>\n","protected":false},"excerpt":{"rendered":"VS Code Devcontainer&#8217;da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz\nGeli\u015ftirme s\u00fcre\u00e7lerimizde izolasyon, tutarl\u0131l\u0131k ve veriml&#8230;","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":[1342],"tags":[],"class_list":{"0":"post-38468","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ai","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>VS Code Devcontainer&#039;da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz - 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\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"VS Code Devcontainer&#039;da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz\" \/>\n<meta property=\"og:description\" content=\"VS Code Devcontainer&#039;da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz Geli\u015ftirme s\u00fcre\u00e7lerimizde izolasyon, tutarl\u0131l\u0131k ve veriml...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-31T15:00:41+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=\"14 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"VS Code Devcontainer&#8217;da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz\",\"datePublished\":\"2026-01-31T15:00:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/\"},\"wordCount\":2225,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"AI\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/\",\"name\":\"VS Code Devcontainer'da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-31T15:00:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"VS Code Devcontainer&#8217;da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz\"}]},{\"@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":"VS Code Devcontainer'da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz - 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\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/","og_locale":"tr_TR","og_type":"article","og_title":"VS Code Devcontainer'da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz","og_description":"VS Code Devcontainer'da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz Geli\u015ftirme s\u00fcre\u00e7lerimizde izolasyon, tutarl\u0131l\u0131k ve veriml...","og_url":"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-31T15:00:41+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"14 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"VS Code Devcontainer&#8217;da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz","datePublished":"2026-01-31T15:00:41+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/"},"wordCount":2225,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["AI"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/","url":"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/","name":"VS Code Devcontainer'da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-31T15:00:41+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/vs-code-devcontainerda-harici-terminal-ile-ssh-agent-kullanimi-derinlemesine-bir-kilavuz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"VS Code Devcontainer&#8217;da Harici Terminal ile SSH Agent Kullan\u0131m\u0131: Derinlemesine Bir K\u0131lavuz"}]},{"@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\/38468","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=38468"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38468\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}