Telefondan Hermes agent'a güvenli erişim yöntemleri
Hermes agent çalışan VPS'e telefondan Tailscale, herkese açık HTTPS endpoint'i veya SSH ile erişin; telefon kaybolursa erişimi nasıl iptal edeceğinizi öğrenin.
Hermes temsilcinize telefonunuzdan ulaşmanın üç yolu
Hermes temsilcinize telefonunuzdan ulaşmak için web panelini kullanırsınız; asıl karar, bu panelin önünde neyin durduğudur. Birinci seçenek, panelin yalnızca bir Tailscale adresi üzerinden dinleme yaptığı ve internete hiçbir portun açık olmadığı özel bir mesh ağıdır. İkinci seçenek, TLS (transport layer security) ve bir giriş ekranı ile korunan, reverse proxy arkasındaki genel bir uç noktadır; burada giriş ekranı, sunucunuzdaki terminale erişimi koruyan tek unsurdur. Üçüncü seçenek ise en az kurulum gerektiren ve en yüksek erişim yetkisini sağlayan, bir terminal uygulaması üzerinden SSH (secure shell) bağlantısıdır.
Bu kılavuz, kendi VPS'inizde Hermes temsilcisi çalıştırma işleminin bittiği noktadan başlar. Temsilci kuruludur, komut satırında yanıt vermektedir ve artık onu cebinizde taşımak istiyorsunuz.
Aşağıdaki komutlar, 3 Ağustos 2026 tarihinde yayınlanan ve sürüm notlarında v0.20.0 olarak etiketlenen v2026.8.3 etiketi esas alınarak yazılmıştır. Hermes sık sık yeni sürümler yayınlar, bu nedenle main sürümünü takip etmek yerine makineyi belirli bir etikete sabitleyin. Yükleyici bir commit kabul eder:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --commit 3c27eb6234bf
hermes --versionhermes --version, halihazırda neyin kurulu olduğunu yazdırır. Bu sayfadaki herhangi bir bayrağa güvenmeden önce bunu etiket ile karşılaştırın.
Depoda sunulanlar ve sunulmayanlar
Hermes repository içinde iOS veya Android uygulaması bulunmaz. Native istemci hermes desktop (diğer adıyla hermes gui) olarak adlandırılır ve macOS, Windows ve Linux üzerinde çalışan bir Electron uygulamasıdır. Yerel agent yerine uzak bir agent'a bağlanabilir: Settings içindeki Gateway bölümünde remote URL değerini http://<server-address>:9119 olarak ayarlayın veya uygulamayı başlatmadan önce HERMES_DESKTOP_REMOTE_URL=http://<server-address>:9119 değerini export edin. Bu, ikinci bir laptop kullanma sorununu çözer. Telefon için herhangi bir çözüm sunmaz.
Telefondan kullanılan arayüz hermes dashboard, yani browser arayüzüdür. Bu arayüz configuration, session, cron job, skill, log ve messaging platformlarını yönetir ve bir terminal içerir: server, PTY (pseudo-terminal) arkasında hermes --tui sürecini başlatır ve çıktıyı sayfaya aktarır. Dar ekranda session switcher, slide-over panel olarak açılır. Böylece layout telefonda da kullanılabilir durumda kalır.
Varsayılan olarak dashboard 127.0.0.1:9119 üzerinde dinler ve server'ın kendisinde bir browser tab açar. Bu, headless VPS (virtual private server) için kullanışlı değildir. Browser olmadan başlatın ve socket'i kontrol edin:
hermes dashboard --no-open
ss -lntp | grep 9119127.0.0.1:9119 üzerindeki listener'a yalnızca server üzerinden erişilebilir. 0.0.0.0:9119 üzerindeki listener'a, makinenin bağlı olduğu tüm ağlardan, public ağ da dahil olmak üzere erişilebilir. Dışa ne kadar açık olduğunuzu bu tek satır belirler. Bu nedenle varsayım yapmak yerine satırı kontrol edin.
Seçenek 1: Tailscale ile özel bir mesh ağı
Özel bir nedeniniz yoksa bu seçeneği tercih edin. Tailscale, WireGuard üzerine inşa edilmiş bir mesh VPN'dir (sanal özel ağ). Sisteme dahil ettiğiniz her cihaz sabit bir adres alır ve diğerleriyle doğrudan iletişim kurar. Telefonunuz da aynı mesh ağına katılır, bu sayede dashboard için hiçbir zaman genel bir port açmanız gerekmez.
Sunucu üzerinde:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
tailscale ip -4Tailscale uygulamasını telefonunuza yükleyin ve aynı hesapla giriş yapın. Sunucuda tailscale status komutu, telefonu ismiyle listeleyecektir. Şimdi dashboard'u tailscale ip -4 çıktısında görünen adrese bağlayın:
hermes dashboard --host 100.101.102.103 --port 9119 --no-open0.0.0.0 yerine mesh adresine bağlama yapmak, dinleme soketinin yalnızca Tailscale arayüzünde var olacağı anlamına gelir. Genel IP adresinize yapılacak bir port taraması 9119 numaralı portta hiçbir şey bulamaz çünkü orada dinleme yapan bir servis yoktur; böylece güvenlik duvarınız sizi koruyan tek katman olmaktan çıkar. Durumu ss -lntp | grep 9119 ile tekrar doğrulayın.
Bağlama adresi aynı zamanda kimlik doğrulama yöntemini de belirler; bu, kullanıcıların gözden kaçırdığı bir noktadır. 127.0.0.1 üzerinde, genel bir URL yapılandırılmadığında dashboard herhangi bir giriş ekranı sunmaz. Diğer tüm adreslerde kimlik doğrulama kapısı zorunludur ve herhangi bir sağlayıcı yapılandırılmadığında sunucu başlatılmayı reddeder. Proje bunu "güvenli bir şekilde başarısız olma" (failing closed) olarak adlandırır. İlk çalıştırmayı etkileşimli modda yaparsanız, size hemen bir kullanıcı adı ve parola oluşturmayı teklif eder; bu bilgiler ~/.hermes/config.yaml içindeki dashboard.basic_auth dosyasında saklanır. Aynı sağlayıcıyı ~/.hermes/.env üzerinden de yapılandırabilirsiniz; projenin kendi örneklerinde izlediği yöntem budur:
HERMES_DASHBOARD_BASIC_AUTH_USERNAME=you
HERMES_DASHBOARD_BASIC_AUTH_PASSWORD_HASH=scrypt$16384$8$1$...
HERMES_DASHBOARD_BASIC_AUTH_SECRET=a-long-random-stringBu gizli anahtarı openssl rand -hex 32 ile oluşturun ve bir daha değiştirmeyin. Bu anahtar oturum çerezini imzalar, dolayısıyla değiştirilmesi tüm cihazların oturumunu kapatır. Aynı dosya model API anahtarlarınızı da tutar, bu yüzden chmod 600 ~/.hermes/.env ile dosyanın gizliliğini koruyun.
Güvenmeden önce mesh üzerindeki başka bir makineden giriş kapısını kontrol edin:
curl -s http://100.101.102.103:9119/api/status | jq '.auth_required, .auth_providers'true ve ardından ["basic"] çıktısı, kapının açık olduğunu ve parola sağlayıcısının yanıt verdiğini gösterir. Projenin kendi belgeleri bu sağlayıcı hakkında nettir: bu yöntem güvenilir bir ağ veya VPN için tasarlanmıştır ve genel internete açık bir dashboard için uygun değildir. Bir mesh ağında tam olarak bu durumdasınız.
Tailnet içinde HTTPS kullanmak için portu Tailscale'e devredin:
sudo tailscale serve --bg localhost:9119
sudo tailscale serve statusTailscale, makinenin MagicDNS ismi için düzenlenmiş bir sertifika ile TLS termination işlemini gerçekleştirir; böylece tarayıcı uyarı vermeyi bırakır ve oturum çerezi Secure bayrağını alır. Öncelikle Tailscale yönetim konsolunun DNS sayfasından MagicDNS ve HTTPS Sertifikaları seçeneklerini etkinleştirin ve oradayken onay metnini okuyun: makine isimleriniz ve tailnet DNS isminiz, herkesin okuyabileceği genel sertifika şeffaflık defterinde (certificate transparency ledger) yayınlanır.
Buradaki dürüst maliyet, koordinasyon sunucusudur. Telefonunuz ile VPS'niz arasındaki trafik uçtan uca şifrelidir ve Tailscale üzerinden geçmez; ancak hangi cihazların mesh ağına ait olduğuna karar veren hesap sizin donanımınızda barınmaz. Eğer bu sizin için önemliyse, kontrol düzlemini (control plane) Headscale, kendi kendine barındırılan Tailscale kontrol sunucusu ile kendiniz çalıştırın ve istemcileri tailscale up --login-server https://headscale.example.com kullanarak bu sunucuya yönlendirin. Eğer mesh ağından vazgeçip eşleri (peers) manuel olarak yapılandırmak isterseniz, saf WireGuard ile Tailscale karşılaştırması neleri feda ettiğinizi açıklar.
Seçenek 2: Herkese açık bir HTTPS uç noktası ve içerdiği tuzak
Bazen bir mesh ağı kullanılamaz. İş telefonu bir VPN istemcisi kurmanıza izin vermeyebilir. Bu durumda panel bir reverse proxy arkasına alınır. Paneli loopback üzerinde tutun ve sertifikayı Caddy'nin yönetmesini sağlayın:
hermes.example.com {
reverse_proxy 127.0.0.1:9119
}Caddy sertifikayı kendi kendine alır ve yeniler; reverse_proxy yönergesi, panelin gömülü terminalinin ihtiyaç duyduğu WebSocket yükseltmelerini ek bir ayar gerektirmeden iletir. Nginx üzerinde Upgrade ve Connection başlıklarını manuel olarak eklemeniz gerekir ve nginx üzerinde Certbot ile Let's Encrypt sertifikası oluşturma rehberi bu işin TLS kısmını kapsar. Hermes'e genel adını bildirin, böylece giriş geri çağırmaları (callback) doğru ana bilgisayara yönlendirilir:
dashboard:
public_url: "https://hermes.example.com"Şimdi tuzak kısmına gelelim. Kimlik doğrulama kapısı, isteğin geldiği adrese değil, bind address (bağlanılan adres) değerine göre tetiklenir. Mevcut sürümler, arka uç loopback üzerinde olsa bile dashboard.public_url (veya HERMES_DASHBOARD_PUBLIC_URL) parametresi loopback dışı bir ana bilgisayar adı içerdiğinde kapıyı devreye sokar; bu nedenle yukarıdaki ayar kapıyı aktif eder ve bir sağlayıcı yapılandırılana kadar panel başlamayı reddeder. public_url ayarını boş bırakırsanız, proxy arkasında 127.0.0.1 adresine bağlı bir panel loopback görür, kimlik doğrulamaya gerek olmadığına karar verir ve proxy'nin izin verdiği herkese hizmet verir. Yapılandırmanız ne olursa olsun, gerçekte neyi yayınladığınızı kontrol edin:
curl -s https://hermes.example.com/api/status | jq '.auth_required'Eğer bu komut false çıktısını veriyorsa, internet sunucunuzdaki bir terminale sadece bir URL uzaklıktadır. Burada bir istismar söz konusu değildir ve log kayıtlarında herhangi bir hata görünmeyecektir. Bunun için en az birini uygulamanız gereken iki çözüm yolu vardır. Kimlik doğrulamayı proxy katmanına taşıyın ve forward auth aracılığıyla self-hosted bir SSO sağlayıcısı olarak Authentik kullanın ya da panelin kendi OIDC (OpenID Connect) sağlayıcısını yapılandırın:
HERMES_DASHBOARD_OIDC_ISSUER=https://auth.example.com/application/o/hermes/
HERMES_DASHBOARD_OIDC_CLIENT_ID=hermes-dashboard
HERMES_DASHBOARD_OIDC_SCOPES="openid profile email"Doğru yapılsa bile, bu seçeneğin altına düşemeyeceğiniz bir güvenlik seviyesi vardır. Herkese açık bir giriş sayfası, herkesin erişebileceği ve saldırabileceği bir sayfadır; arkasında ise VPS üzerinde bir kabuk (shell) bulunur. Kullanıcı adı ve parola bunun için zayıf bir korumadır; bu nedenle belgeler, herkese açık bağlantılar için OAuth veya OIDC kullanımını önermektedir. Giriş denemelerini hız sınırlamasına (rate limit) tabi tutun, ufw üzerinde proxy portları ve SSH dışındaki tüm girişleri kapatın ve erişim loglarını düzenli olarak inceleyin.
Seçenek 3: Mobil terminal üzerinden SSH ve mosh kullanımı
En az çaba gerektiren yöntem: telefona bir terminal uygulaması kurmak, bir SSH anahtarı yüklemek ve aracın kendi metin arayüzünü kullanmaktır.
ssh you@vps.example.com
tmux new -A -s phone
hermes --tuitmux new -A -s phone, phone adlı bir oturuma bağlanır veya mevcut değilse oluşturur; böylece bağlantı koptuğunda araç çalışmaya devam eder ve bir sonraki seferde kaldığınız yerden devam edersiniz. Bu yöntem, telefondan Claude Code yönetimi için kullanılanla aynıdır.
Mobil ağ üzerinden standart SSH kullanımı, telefonun IP adresi değiştiğinde veya uyku moduna geçtiğinde bağlantı koptuğu için verimsizdir. Mosh bu sorunu çözer. UDP (user datagram protocol) üzerinden çalışır ve bayt akışı yerine terminal durumunu senkronize eder; bu sayede oturum, Wi-Fi ağından hücresel ağa geçişlerde bile hayatta kalır:
sudo apt install -y mosh
sudo ufw allow 60000:61000/udpTelefondan mosh you@vps.example.com komutunu çalıştırın. Mosh, mevcut SSH oturumunuz üzerinden mosh-server sürecini başlatır ve oturumu 60000 ile 61000 arasındaki bir UDP portuna taşır; bu nedenle bu aralığın açılması gerekir. Her oturum için yalnızca kendi portu yeterlidir; dolayısıyla eşzamanlı oturum sayısının az olduğu bir sunucuda 60000 ile 60010 gibi daha dar bir aralık açabilirsiniz.
Güvenlik maliyeti standarttır. Bir SSH oturumu bir kabuktur (shell) ve kabuk, o hesabın yapabileceği her şeydir. Aracın onay istemleri, kilidi açık bir telefonun çalınması ile dosyalarınız arasındaki son savunma hattıdır. Bunun için root olmayan özel bir hesap kullanın, sadece anahtar ile erişimi tercih edin ve cihazınızda bir anahtar taşımadan önce VPS üzerinde SSH güvenliğini sıkılaştırma adımlarını uygulayın.
Mobil ağlarda ne tür sorunlar yaşanır
Dört temel durum söz konusudur ve bunların hiçbiri yapılandırma ile giderilebilecek hatalar değildir.
Siz bakmıyorken kontrol paneli oturumunuzu kapatır. Bunun ne kadar sürede gerçekleşeceği giriş sağlayıcısına bağlıdır. Kullanıcı adı ve parola sağlayıcısı, varsayılan olarak 12 saat geçerli olan bir erişim belirteci (access token) oluşturur; bu değer session_ttl_seconds altında dashboard.basic_auth ile ayarlanır. Ancak bu değer, oturumun ne kadar süre açık kalacağını değil, kontrol panelinin arka planda ne sıklıkla yenileneceğini belirler. Her yenileme işlemi 30 günlük yeni bir yenileme belirteci (refresh token) oluşturur; bu nedenle parola ile giriş, 30 gün boyunca yenileme yapılmadığı sürece geçerli kalır. Eğer HERMES_DASHBOARD_BASIC_AUTH_SECRET ayarlanmamışsa, bir arka uç (backend) yeniden başlatması da oturumu sonlandırır; çünkü Hermes her başlatıldığında yeni bir imzalama anahtarı oluşturur. Nous Portal OAuth sağlayıcısı, 15 dakikalık TTL (yaşam süresi) değerine sahip erişim belirteçleri oluşturur ve bunları her kullanımda değişen bir yenileme belirteci ile arka planda günceller. Bu nedenle, süresi dolmuş bir erişim belirteci tek başına sizi /login sayfasına geri göndermez. Oturumu sonlandıran şey, yenileme oturumunun kaybedilmesidir. v0.21.3 sürümünden önceki sürümlerde (v2026.9.14 etiketi, 14 Eylül 2026 tarihinde yayımlanmıştır), arka plandan dönen bir telefon aynı anda birden fazla istek gönderebilir, yeni değiştirilmiş yenileme belirtecini tekrar kullanabilir, sağlayıcının yeniden kullanım algılama mekanizmasını tetikleyebilir ve tüm oturumun iptal edilmesine neden olabilirdi. Bu durumda giriş ekranına döner ve yazdığınız tüm verileri kaybederdiniz. v0.21.3 sürümü, bu isteklerin tek bir yenileme işlemini paylaşmasını sağlar. Ayrıca Nous Portal tarafında, bir yenileme oturumu her kullanıldığında 30 günlük süresini uzatır; ancak 30 günlük hareketsizlik oturumu yine de sonlandırır. Bu sayfanın en üstündeki v2026.8.3 sürümünü kullanıyorsanız, zaman zaman zorunlu giriş yapmanız gerekebilir. Herhangi bir arıza yoktur. Tekrar giriş yapın.
Gömülü terminal, arka plana alınan sekmelerde çalışmaya devam etmez. Sunucu, TUI (metin tabanlı kullanıcı arayüzü) arayüzünü bir PTY arkasında oluşturur ve sekme kapandığında bu süreci temiz bir şekilde sonlandırır; sekme tekrar açıldığında ise yeni bir süreç başlatılır. Mobil tarayıcılar, bellek kazanmak için arka plandaki sekmeleri askıya alır; bu nedenle başka bir uygulamaya uzun süre geçiş yapmak terminal oturumunu sonlandırır. Sohbet geçmişiniz güvendedir çünkü oturumlar sunucuda saklanır ve hermes sessions list bunları göstermeye devam eder. Terminalin kendisine ise tekrar bağlanamazsınız. Kesintisiz bir oturuma ihtiyacınız varsa, SSH üzerinden tmux kullanın.
Boştaki bağlantılar sessizce kopar. Mobil operatörler, NAT (ağ adresi çevirisi) tablosu girişlerini geri kazanmak için boşta kalan TCP bağlantılarını sonlandırır ve ekran kapandığında telefon ağ trafiğini neredeyse tamamen durdurur. Bir süredir sessiz kalan WebSocket bağlantısı, ekran kilidini açtığınızda genellikle çoktan kopmuş olur ve sayfa ancak siz etkileşimde bulunduğunuzda yeniden bağlanır. mosh uygulamasının telefonda SSH'tan daha iyi hissettirmesinin nedeni budur: mosh, kaybedilecek bir bağlantı mantığına sahip değildir.
Bildirim gönderilmez. Ne kontrol paneli ne de bir SSH oturumu telefonunuzu uyandırabilir. Cihazda bir Hermes uygulaması bulunmadığı için platformun bildirim servisine erişim yolu yoktur. Uzun süren bir aracı (agent) çalışması tamamlandığında, bunu ancak uygulamaya tekrar baktığınızda fark edersiniz.
Bildirimler mesajlaşma ağ geçidi üzerinden ulaşır
Bu son sorunun çözümü, aracıya ulaşmanın tamamen farklı bir yolu olan ağ geçididir. hermes gateway, aracıyı Telegram, Discord, Slack, WhatsApp, Signal ve e-posta dahil olmak üzere mesajlaşma platformlarına bağlar. Bu sayede aracıyla, telefonunuzda halihazırda bir push kanalı bulunan, arka plan teslimatını yöneten ve ağ kesintileriyle başa çıkabilen bir uygulama üzerinden iletişim kurarsınız.
hermes gateway setup
hermes gateway install
hermes gateway statushermes gateway install, ağ geçidini bir systemd servisi olarak kaydeder, böylece yeniden başlatma sonrasında servis tekrar çalışır. Yükleyicinin ağ geçidi aşaması bu adımı sizin yerinize gerçekleştirebilir, ancak yükleyicideki hiçbir şey hermes dashboard için bir unit dosyası oluşturmaz; bu nedenle kontrol paneli yeniden başlatma sonrasında kendiliğinden ayağa kalkmaz. İhtiyaç duyduğunuz bileşenler için bir unit dosyası yazın; VPS üzerinde systemd servisleri ve zamanlayıcıları yazma rehberi dosyanın kendisini kapsamaktadır.
Zamanlanmış bir iş, herhangi bir sohbet süreci olmaksızın sonucu aynı yolla iletebilir:
hermes send -t telegram -s "Backup report" -f /home/you/report.txtBuradaki yetkilendirme varsayılan olarak reddetme (deny by default) ilkesine dayanır. Herhangi bir izin listesi (allowlist) tanımlanmadığında ve GATEWAY_ALLOW_ALL_USERS ayarlanmadığında, tüm kullanıcılar reddedilir; bu, doğru başlangıç noktasıdır. İzin vermek istediğiniz hesapları ~/.hermes/.env içerisinde belirtin:
TELEGRAM_ALLOWED_USERS=123456789
GATEWAY_ALLOWED_USERS=123456789Veya sayısal kimlikleri yapıştırmak yerine kod tabanlı eşleştirmeyi kullanın. Bu, sohbet tarzı doğrudan mesajlaşma platformları için varsayılandır ve ~/.hermes/config.yaml içerisindeki unauthorized_dm_behavior: pair parametresi ile açıkça ayarlanabilir. Aracıya mesaj gönderen bilinmeyen bir hesap sekiz karakterli bir kod alır ve siz onaylayana kadar başka hiçbir işlem gerçekleşmez:
hermes pairing list
hermes pairing approve telegram ABC12DEF
hermes pairing revoke telegram 123456789Kodlar bir saat sonra geçerliliğini yitirir, bir kullanıcı her on dakikada bir kod talep edebilir ve beş başarısız deneme o hesabı kilitler.
Çalınan bir telefonun etki alanını sınırlama
Sunucunuza erişebilen bir telefon, sunucunuzda komut çalıştırabilen bir telefon demektir ve telefonlar kaybolabilir. Telefonu elinde tutan kişinin neler yapabileceğine şimdiden karar verin.
Onay mekanizmalarını açık tutun. approvals.mode varsayılan olarak smart değerindedir; bu ayar, risk değerlendirmesi için yardımcı bir modelden görüş alır ve yalnızca düşük riskli komutları otomatik olarak onaylar. Ayarı off yapmak, her şeyi --yolo ile çalıştırmakla aynıdır; HERMES_YOLO_MODE=1 ise bunu ortam üzerinden gerçekleştirir. Bu durumdayken bir aracıyla iletişim kuran bir telefonu yanınızda taşımayın. Siz uyurken zamanlanmış işlerin kendilerini onaylamasını engellemek için approvals.cron_mode: deny ayarını yapılandırın.
approvals:
mode: smart
cron_mode: denyAracıya zarar verebileceği daha küçük bir dünya sunun. terminal.backend: docker, komutları kısa bir liste dışındaki tüm Linux yeteneklerini kısıtlayan, no-new-privileges ayarını yapan ve süreç sayısını sınırlayan bir container içinde çalıştırır; böylece container, bir komut satırı istemi yerine sınır haline gelir. terminal.cwd, çalışma dizinini sabitler. HERMES_WRITE_SAFE_ROOT, write_file ve patch işlemlerini belirttiğiniz dizinlerle kısıtlar; bu dizinlerin dışına yazma işlemi, geçersiz kılınacak bir onay mekanizması olmaksızın engellenir.
export HERMES_WRITE_SAFE_ROOT=/home/you/projects:/home/you/.hermesHermes; ~/.ssh, ~/.aws, ~/.kube ve /etc/sudoers dizinlerine ve ~/.hermes/.env gibi kendi gizli veri depolarına yazma işlemlerini halihazırda engeller. Disk üzerindeki diğer yerlerde bulunan proje .env dosyalarının okunması engellenir ancak bu dosyalar yazılabilir durumda kalırlar. Ayrıca, onay ayarlarınız ne olursa olsun, yıkıcı komutlardan oluşan katı bir listeyi reddeder. Bunu planınızın bir parçası olarak değil, temel bir güvenlik katmanı olarak görün. Aracıyı root olarak değil, her zaman sıradan bir kullanıcı olarak çalıştırın. Aynı mantık, gözetimsiz bırakılan tüm kodlama araçları için de geçerlidir ve Claude Code'u bir VPS üzerinde güvenli bir şekilde çalıştırma rehberi bu konuyu daha ayrıntılı olarak ele almaktadır.
Ardından, ihtiyaç duymadan önce iptal adımlarını not edin. Cihazı Tailscale yönetim konsolundan kaldırmak, ağ erişimini anında keser. HERMES_DASHBOARD_BASIC_AUTH_SECRET değerini değiştirmek ve yeniden başlatmak, oturum çerezini imzaladığı için her cihazdaki tüm panel oturumlarını geçersiz kılar. Telefonun ortak anahtarını ~/.ssh/authorized_keys dosyasından silmek, SSH erişimini sonlandırır. hermes pairing revoke telegram <user-id>, bir mesajlaşma hesabını kaldırır. Cihaz, sağlayıcı anahtarlarınızı okuyabilecek herhangi bir veri içeriyorsa, hermes auth logout <provider> ile bu anahtarları iptal edin ve sağlayıcı tarafında yenilerini oluşturun.
Varsayımlarda bulunmak yerine sonucu kontrol edin. Bunlar kendi sunucunuzda çalıştırmanız gereken komutlardır ve çıktıları kurulumunuza bağlı olarak değişir:
tailscale status
hermes pairing list
hermes logs gateway -n 100
hermes status --deepLog kayıtları ~/.hermes/logs/ altında tutulur. Bir olaydan sonra bu kayıtları okuyun ve herhangi bir olay yaşanmadığında da düzenli olarak inceleyin.
FAQ
Resmi bir Hermes mobil uygulaması iOS veya Android için mevcut mu?
Hayır. Hermes deposu bir komut satırı arayüzü, bir web paneli ve macOS, Windows ve Linux için bir Electron masaüstü istemcisi sunar. Birinci taraf bir iOS veya Android sürümü bulunmamaktadır. Telefondan erişim için tarayıcı üzerinden web panelini, bir SSH istemcisini veya hermes gateway aracılığıyla bağlı bir mesajlaşma platformunu kullanabilirsiniz. Üçüncü taraf mobil istemciler mevcuttur; ancak bunlar aracınıza ait kimlik bilgilerini tutan üçüncü taraf yazılımlardır, bu nedenle yüklemeden önce kaynak kodlarını inceleyin.
Hermes paneli telefonda neden oturumu kapatıyor?
Bu durum giriş sağlayıcısına bağlıdır. Nous Portal OAuth sağlayıcısı, 15 dakikalık TTL değerine sahip erişim belirteçleri (access token) yayınlar ve bunları arka planda dönen bir yenileme belirteci (refresh token) ile günceller; bu nedenle süresi dolan bir erişim belirteci tek başına sizi /login sayfasına yönlendirmez. v0.21.3 (etiket v2026.9.14) öncesi sürümlerde, arka plandan dönen bir telefon aynı anda birden fazla istek göndererek yeni güncellenmiş yenileme belirtecinin tekrar kullanılmasına (replay) neden olabilir ve tüm oturumun iptal edilmesine yol açarak sizi tekrar giriş yapmaya zorlayabilirdi. v0.21.3 sürümü bu sorunu gidermiştir; 30 gün boyunca boşta kalan bir yenileme oturumu ise hala sona erer. Kullanıcı adı ve parola sağlayıcısı, session_ttl_seconds tarafından belirlenen ve yalnızca panelin arka planda ne sıklıkla yenileneceğini kontrol eden 12 saatlik varsayılan bir erişim belirteci kullanır. Bu oturum, her yenilemede yeniden oluşturulan 30 günlük bir yenileme belirteci ile güncellenir, dolayısıyla parola ile giriş 12 saat sonra sona ermez. Bu sağlayıcıyı kullanırken HERMES_DASHBOARD_BASIC_AUTH_SECRET değerini sabit ve rastgele bir değere ayarlayın. Aksi takdirde Hermes her başlatıldığında yeni bir imzalama anahtarı oluşturur ve her yeniden başlatma oturumunuzu kapatır.
Hermes panelini genel internete güvenli bir şekilde açabilir miyim?
Yalnızca kendi doğruladığınız bir kimlik doğrulama yöntemiyle açabilirsiniz. Kimlik doğrulama kapısı, bağlama adresine (bind address) göre devreye girer; mevcut sürümlerde dashboard.public_url parametresi loopback olmayan bir ana bilgisayar belirttiğinde de aktif olur. Bu nedenle, genel bir URL tanımlanmamış ve ters vekil sunucu (reverse proxy) arkasında 127.0.0.1 adresine bağlı bir panel, internetten giriş talep etmez. curl -s https://your-host/api/status | jq '.auth_required' komutunu çalıştırarak dönen sonucu inceleyin. Proje belgeleri parola sağlayıcısının güvenilir ağlar ve VPN'ler için olduğunu belirttiğinden, kullanıcı adı ve parola yerine OAuth veya OIDC kullanın. Özel bir mesh ağı bu soruyu tamamen ortadan kaldırır, bu nedenle en iyi varsayılan yöntem budur.
Tailscale hesabına ihtiyacım var mı, yoksa kontrol düzlemini (control plane) kendim barındırabilir miyim?
Kendiniz barındırabilirsiniz. Headscale, Tailscale koordinasyon sunucusunun açık kaynaklı bir uygulamasıdır ve resmi Tailscale istemcileri tailscale up --login-server https://headscale.example.com ile buna bağlanabilir. Bu durumda ağa (mesh) dahil edilmesine izin verilen cihazların listesi sizin kontrolünüzde olur. Bunun maliyeti, sunucuyu sizin çalıştırmanız ve yedeklemenizdir; sunucu kapalıyken yeni bir cihaz kaydedemez veya kimlik doğrulaması yapamazsınız.
Bir aracı (agent) işi bitirdiğinde telefonuma nasıl bildirim alabilirim?
Mesajlaşma ağ geçidini (messaging gateway) kullanın. Panel ve SSH'in telefonu uyandırma imkanı yoktur, çünkü cihazda bildirimleri alacak bir Hermes uygulaması bulunmamaktadır. Aracı, hermes gateway setup ile Telegram, Signal, Discord veya desteklenen başka bir platforma bağlayın; ardından bildirimi o platformun kendi uygulaması ile alın. Ayrıca bir cron işi, hermes send -t telegram -s "Job done" -f /path/to/report.txt kullanarak modeli çağırmadan tek bir mesaj gönderebilir.