alogin – TUI, çok atlamalı ağ geçidi ve şifreli depolama sunan SSH erişim yönetim aracı (Go)
(github.com/emusal)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 atlamadaAllowTcpForwardingkapalı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,mkomutları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
Windows desteği yok mu? hıçkırık hıçkırık
Windows ortamım olmadığı için deneyemedim.
Kullanım ekran görüntüleri olsaydı iyi olurdu.
README'ye ekran görüntüsü ekledim. Tavsiyeniz için teşekkürler.