1 puan yazan GN⁺ 2025-02-09 | 1 yorum | WhatsApp'ta paylaş
  • 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

 
GN⁺ 2025-02-09
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

    • Üzerinde çalıştığımız yazılım hakkında kısaca yazdı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

    • Bir ana makine adı ve onaltılık olarak kodlanmış bir JSON belgesi bulunuyor
    • Ana makine adında büyük harf varsa ek bilgi gerekiyor
    • SSH bağlantısı, sunucuya kurulacak eklentileri yapılandırabiliyor. Ama çok fazla kurarsanız Windows ana makinelere bağlanamıyorsunuz
  • Güvenlik sorununu anlamıyorum. SSH ile bir makineye girip soket yönlendirebiliyorsanız başka şeyler de yapabilirsiniz

    • Sorunun, aynı ağdaki birinin SSH olmadan yönlendirilmiş porta bağlanabilmesi olup olmadığını merak ediyorum
    • Kullanıcı olarak VSCode'un SSH sisteminin iyi çalışmasını seviyorum
  • Ağ sunucusu işletiyorum ve öğrencilerin OpenSSH istemcisini anlamaması büyük bir sorun

    • Öğrencilere VSCode uzak sunucu eklentisini kullanmamalarını söylüyorum
    • Disk kullanımında 100MB'ı aşan öğrencilerin hepsinin VSCode kullanıcısı olduğunu görüyorum
    • Kullanıcı süreç sınırını 45 olarak ayarladım. Öğrenciler uyarıları görmezden gelirse süreç sınırına takılıyorlar
    • Her 10 saniyede bir .vscode-server süreçlerini sonlandıran bir betik kullanıyorum
  • VSCode'un SSH üzerinden düzenleme özelliği iyi çalışıyor. Artık uzak makinede vim, nano, micro kullanmıyorum

    • Aracı engel çıkarmadığı için iş yapmak kolaylaşıyor
    • Güvenlik riski olabilir ama geliştirme deneyimi harika
  • 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, 90'ların çözümü. Telnet'e birkaç özellik eklenmiş hali
    • SSH üzerinden kurulan birçok şey verimsiz
    • Uygun araçlar üretmedik. Mevcut araçlara daha fazla özellik ekledik
  • "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

    • Tüm geliştirme ortamını uzakta, yereldeymiş gibi çalıştırabiliyorsunuz
    • Eski makineleri veya thin client'ları tam teşekküllü iş istasyonlarına dönüştürebiliyor
    • VSCode marketplace'te güvenlik tehdidi oluşturan çok sayıda eklenti var. SSH Remote veya VS Tunnel bunlardan değil
  • Geliştirme sunucusunda VSCode uzak düzenlemeye izin vermek beni rahatsız ediyor. Prodüksiyon sunucusunda ise daha da fazla

    • Prodüksiyon sunucusunda VSCode Remote kullanmak delilik
    • Diğer işlevler beklenen özellikler
  • Yerel VSCode örneği thin client oluyor, uzak örnek ise ağır işleri üstleniyor

    • Küçük bir dizüstünden güçlü bir iş istasyonuna SSH ile bağlanma senaryosu için uygun
    • Güçlü bir iş istasyonundan küçük bir VM/VPS'ye SSH ile bağlanılıyorsa sshfs ya da başka bir uzak dosya sistemi bağlama düzeni önerilir