VSCode’un SSH Agent’i saçmalık
(fly.io)-
VSCode ve uzaktan düzenleme
- VSCode, SSH üzerinden uzaktan düzenlemeyi destekleyen bir özelliğe sahip.
- Birçok kullanıcı VSCode ve LLM’leri (büyük dil modelleri) kullanarak kod üretiyor.
- LLM’in hatalı kod üretmesine "halüsinasyon" deniyor; bunu çözmek için, LLM ile yürütme ortamı arasındaki döngüyü "agent" ayarıyla kapatmak önemli.
- Bu süreç, LLM’in kod üretmesi, agent’ın kodu çalıştırması, hata üretmesi ve bunun LLM’e geri bildirilerek tekrar edilmesi şeklinde ilerliyor.
-
Geliştirme ortamındaki sorunlar
- Bu tür tekrarlı geliştirme sürecinin geliştiricinin dizüstü bilgisayarında gerçekleşmesi arzu edilen bir durum değil.
- LLM sistem yapılandırmasını da etkileyebileceği için, bu işleri temiz durumdaki bir Linux instance’ında yapmak daha iyi.
-
Emacs ve Tramp
- Emacs, Tramp adlı kullanışlı bir Elisp ile uzaktan düzenleme sistemini destekliyor.
- Tramp, SSH oturumu üzerinden Bourne shell komutlarını çalıştırabilen etkileşimli bir ortama bağlanabiliyor.
-
VSCode’un yaklaşımı
- VSCode, Tramp’e benzer bir işleve sahip olsa da Tramp’ten farklı olarak uzak bağlantıya bütünüyle nüfuz etmeye çalışıyor.
- Agent’ı indirmek için bir Bash snippet stager çalıştırıyor ve buna Node ikili kurulumunu da dahil ediyor.
- Agent, port yönlendirmeli SSH üzerinden çalışıyor ve WebSockets bağlantısıyla VSCode ön yüzüne bağlanıyor.
- Bu bağlantının temel protokolü dosya sistemine göz atabiliyor, rastgele dosyaları düzenleyebiliyor, kendi shell PTY sürecini başlatabiliyor ve kalıcılık kazanabiliyor.
-
Güvenlik endişeleri
- Geliştirme sunucularında VSCode’u uzaktan düzenleme için düşüncesizce kullanmak, hassas bilgiler veya altyapının korunması açısından sorun yaratabilir.
- Özellikle gerçek üretim ortamında bir sorun çıktığında VSCode uzaktan düzenlemeyi kullanmanın çok tehlikeli olabileceğine dair endişeler var.
-
Sonuç
- Fly.io içinde, Fly Machine ile VSCode’u doğrudan bağlamak için bu tür karmaşık bir agent’ın mutlaka gerekli olduğu söylenemez.
- Ancak blog yazısı amacıyla VSCode’un uzaktan bağlantı yöntemini incelemişler ve inceleme sırasında yukarıdaki gerçekleri öğrenmişler.
1 yorum
Hacker News görüşleri
Bir aydır yazılımla ilgili uzun bir yazı yazmaya çalışıyordum. Kurt, bloga yazı yazmıyor diye endişeleniyordu. Kısa bir yazı yazmaya karar verdim. 30 dakika içinde yazabileceğimi düşündüm
VSCode'un nasıl çalıştığını öğrendikçe, geçici çözümlerle ayakta tutuluyor gibi görünüyor. Sadece SSH eklentisine bakınca bile çalışma alanı URI'sinin iki biçimi var
Güvenlik sorununu anlamıyorum. SSH ile bir makineye girip soket yönlendirebiliyorsanız başka şeyler de yapabilirsiniz
Ağ sunucusu işletiyorum ve öğrencilerin OpenSSH istemcisini anlamaması büyük bir sorun
VSCode'un SSH üzerinden düzenleme özelliği iyi çalışıyor. Artık uzak makinede vim, nano, micro kullanmıyorum
Uzaktan kod çalıştırmanın mümkün olduğunu öğrendim. Geliştirme araçlarına duyulan yanlış güven sık sık pişmanlıkla sonuçlanıyor
"SSH agent" terimi kafa karıştırıcı. Genelde kimlik doğrulama belirteçlerini önbelleğe alan bir daemon anlamına geliyor
sshfs önerenler, VSCode SSH Remote ortamının avantajlarını anlamıyor
Geliştirme sunucusunda VSCode uzak düzenlemeye izin vermek beni rahatsız ediyor. Prodüksiyon sunucusunda ise daha da fazla
Yerel VSCode örneği thin client oluyor, uzak örnek ise ağır işleri üstleniyor