4 puan yazan emusal 2026-03-22 | 4 yorum | WhatsApp'ta paylaş

2000’lerin başından beri kişisel SSH otomasyon araçlarımı Bash + Expect betikleriyle yapıp kullanıyordum.
20 yıl boyunca yamalar ekledikten sonra sonunda bunu Go ile tamamen yeniden yazdım ve açık kaynak olarak yayımladım.

https://github.com/emusal/alogin2

Temel çıkış noktası şuydu: onlarca sunucuyu; kullanıcı, port, ağ geçidi yolu ve kimlik bilgileri
birbirinden farklı durumdayken yönetirken — her seferinde ana makine adını baştan sona yazmadan ya da parolaları
düz metin olarak saklamadan rahatça kullanmak istedim.

Başlıca özellikler:

  • TUI (Bubbletea) bulanık arama — ana makine adını tamamen yazmanız gerekmez
  • Go yerel SSH ile çok atlamalı ağ geçidi uygulaması (ProxyCommand yok, expect yok).
    Ara atlamada AllowTcpForwarding kapalıysa kabuk zincirleme yöntemine otomatik geri dönüş
  • Şifreli kimlik bilgisi depolama — parolalar macOS Keychain / Linux Secret Service /
    age ile şifrelenmiş dosyada tutulur. SQLite DB’ye asla kaydedilmez
  • Küme oturumu — tmux, iTerm2, Terminal.app ile aynı anda N sunucuya bağlanma
  • Web UI — WebSocket tabanlı xterm.js terminali + sunucu yönetim panosu (alogin web)
  • Kabuk shim’i — mevcut betiklerdeki t, r, s, f, m komutlarını tek satırlık source ile aynen kullanabilirsiniz

Kullanılan yığın: Go 1.23, Bubbletea, golang.org/x/crypto/ssh, chi, xterm.js (React)

Uygulama sırasında en ilginç kısım çok atlamalı SSH oldu.
golang.org/x/crypto/ssh, mevcut oturum üzerinde bir sonraki atlamaya dial atabildiği için
ek bir süreç olmadan N atlamalı zincirleme mümkün oluyor. Zorlayıcı olan kısım, ara bastion’un
TCP yönlendirmeyi engellediği durumlarda — dial sırasında hatayı algılayıp kabuk zincirleme yöntemine
geçen geri dönüş mantığıydı.

Uygulamayla ilgili sorulara ya da geri bildirimlere açığım.

4 yorum

 
nokdu 2026-03-22

Windows desteği yok mu? hıçkırık hıçkırık

 
emusal 2026-03-22

Windows ortamım olmadığı için deneyemedim.

 
runableapp 2026-03-22

Kullanım ekran görüntüleri olsaydı iyi olurdu.

 
emusal 2026-03-22

README'ye ekran görüntüsü ekledim. Tavsiyeniz için teşekkürler.