Dropbear anahtar-temelli kullanıcı doğrularma
Önsöz
- Bu kılavuz dropbear için Key authentication(en) kurulum yöntemini açıklar.
- PuTTY için anahtar-temelli doğrulama kurulumu için Yeni gelenler için SSH erişimi'ye gözatın.
Hedefler
- 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
Genel ve özel anahtarları yaratma
İ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.
LuCI Web Arayüzünden
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:
- Üst menüde LuCI → System → Administration → SSH-Keys'e yol al
- 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 - Diziyi Paste or drag key file... veya Yapıştır veya dosya sürükle... bölgesine yapıştır
- Anahtar ekle düğmesine tıkla
- 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.
Komut-satırından
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
ssh-copy-id kullanarak
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.
Sınamak
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.
Sorun giderme
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.
Ekler
Cihazın açık anahtarını göstermek
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
Kök-olmayan kullanıcılar
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ğrulamayı etkisizleştirmek
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
İzinleri sabitlemek
Uygun izinleri ayarla.
chmod -R u=rwX,go= /etc/dropbear