Dropbear anahtar-temelli kullanıcı doğrularma

  • Elverişlilik için Dropbear için anahtar-temeli doğrulamayı etkinleştirmek
  • Parola doğrulamasını devredışı bırakarak güvenliği geliştirmek

İstemci makinanızda OpenWrt SSH sunucusuna bağlanmak için kullanmaya istekli olduğunuz bir açık / özel anahtar çifti varsa bunu atlayın.

ssh-keygen aracı doğrulama için kullanılacak bir anahtar çifti yaratmak için kullanılabilir. Bu aracı kullandıktan sonra iki dosyanız olacak, varsayılan olarak ~/.ssh/id_<anahtartipi> (özel anahtar) ve ~/.ssh/id_<anahtartipi.pub (açık anahtar). Her zaman özel anahtarınızı (örneğin ~/.ssh/id_<anahtartipi>) gizli ve güvenli tutun.

# Yeni bir anahtar çifti oluştur, varsayılan 3072-bit RSA
ssh-keygen
# Yeni bir Ed25519 anahtar çifti oluştur
ssh-keygen -t ed25519

OpenWRT cihazdan SSH yapmak istiyorsanız, Dropbear OpenSSH'tan farklı anahtar biçimine gereksinir, yani farklı bir program kullanılır:

dropbearkey -f ~/.ssh/id_dropbear -t rsa -s 2048

Dropbear varsayılan olarak ~/.ssh/id_dropbear dosyasını okuduğundan, özel anahtarın bu dosya olması bir SSH yapılandırma dosyası oluşturmaktan sakınmayı sağlar.

Şifreleme ile ilgili varsayılanlara güvenle dayanmak için yazılımınızı güvende tutun.

Tablet/masaüstü uçbirim programı genel anahtar edindiğinde, cihaza her SSH attığınızda parola girmeyi bırakabilirsin. (Bu güvenli: sadece uygun özel anahtara sahip uçbirim parolasız giriş yapabilir.) İlkin, açık ve özel anahtarları yarat (yukarıda anlatıldı). Ardından AÇIK anahtarını (genelde id_rsa.pub olarak adlandırılır - dosya adı MUTLAKA “.pub” ile bitmeli) karşı cihaza ekle.

Bunu LuCI ile yapmak için:

  1. Üst menüde LuCI → System → Administration → SSH-Keys'e yol al
  2. Açık anahtar dosyasının içeriğini kopyala. ssh-rsa ... ile başlayan ve ... bir-ad@bir-makine.lan ile biten uzun bir dizi olacak
  3. Diziyi Paste or drag key file... veya Yapıştır veya dosya sürükle... bölgesine yapıştır
  4. Anahtar ekle düğmesine tıkla
  5. Deneme için: uçbirim programında yeni bir pencere aç ve ssh root@yönlendiricinin-adresi gir. RSA anahtarın için parola belirlemediysen parola girmeden, belirlediysen o parolayı girip anahtarını kullanılabilir kılarak giriş yapmış olmalısın.

Açık anahtarını (genellikle ~/.ssh/id_rsa.pub dosyası) oku ve /etc/dropbear/authorized_keys'e ekle.

Örnek:

ssh root@192.168.1.1 "tee -a /etc/dropbear/authorized_keys" < ~/.ssh/id_rsa.pub

Açık anahtarını yönlendiriciye ssh-copy-id aracını kullanarak ekle.

ssh-copy-id root@openwrt.lan

Gerekirse yeni genel ve özel anahtarları yarat.

RSA anahtarınla giriş yapabildiğini doğrulamak için, komut satırı arayüzünden, parola doğrulamasını geçici olarak servis dışı bırakarak ssh ile yönlendiricine giriş yap:

ssh -o PasswordAuthentication=no root@openwrt.lan

Bu sınamayı tamamlayana kadar, OpenWrt SSH sunucusunda parola doğrulamasını devre dışı bırakmak, kendini dışarı kilitleyebileceğinden, akılsızca olacaktır.

Takip eden enformasyonu topla ve analiz et.

# Servisleri yeniden başlat
/etc/init.d/log restart; /etc/init.d/dropbear restart
 
# Günce ve durum
logread -e dropbear; netstat -l -n -p | grep -e dropbear
 
# Çalışma zamanı yapılandırması
pgrep -f -a dropbear
 
# Kalıcı yapılandırma
uci show dropbear; ls -l /etc/dropbear; cat /etc/dropbear/authorized_keys

Ek olarak ssh istemcini en yüksek açıklayıcılıkla çalıştır (ssh -vvv) ve çıktıyı kontrol et. Şunun gibi bir şey görürsen

send_pubkey_test: no mutual signature algorithm

ssh istemcini -o PubkeyAcceptedKeyTypes=ssh-rsa seçeneğiyle çalıştırmayı deneyebilirsin. Bu ayarı .ssh/config dosyasında yönlendiricine adanmış bir girdiye kaydedebilirsin.

Bu ssh ile bu cihazdan başka bir cihaza, açık anahtar doğrulama yöntemi ile bağlanacaksan işlevseldir.

dropbearkey -y -f /etc/dropbear/dropbear_rsa_host_key

Ve örnek bir cevap

Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAdrgdftergdsfgdfgdfgdfgdfgdfgdfgJOYPF6nc41DUWDQdRrv8Ihe/zINq5CaFOsysL3LNOg90C9uDYRIp89nq9ydUIrwvjz9r8U/7HFOkLX6YQUevUZHxEyUexhWRSBLbnoQSKLHlB5WhodghdfgdfgdfgdfgdfgdfgfdgdfgfdgdfasdaaedadfasEUxiDTj74l0dqLpCCM1r9BcQd12hvQwfHvbMAcY/7l3Wb5fdAvXI5mMIXXzWPkLhSLHP1Hw1trEmuUeL2rie+WzSjaOGMzVDjOpEaZD0dT7Ib9yDwem8UDMPFuXnNmsUvpxNHakWbw+465uxlyeAzL root@VM-router
Fingerprint: sha1!! ec:66:c1:57:92:c1:ec:66:c1:57:92:c1:c7:9e:71:50:25:65:61:53:dd

“Public key portion”'ı kopyalayıp diğer cihazın kabul edilen anahtarlar'ına yapştırırsın

Doğrulama anahtarlarını etkin kök-olmayan kullanıcı için ekle.

ssh openwrt.lan "mkdir -p ~/.ssh; tee -a ~/.ssh/authorized_keys" < ~/.ssh/id_ed25519.pub

Parola doğrulamasını devre dışı bırakarak güvenliği sağlamlaştır.

uci set dropbear.@dropbear[0].PasswordAuth="0"
uci set dropbear.@dropbear[0].RootPasswordAuth="0"
uci commit dropbear
/etc/init.d/dropbear restart

Uygun izinleri ayarla.

chmod -R u=rwX,go= /etc/dropbear
  • Last modified: 2026/02/23 15:43
  • by ja