SSH anahtarına geçişte en tehlikeli an, parola girişini kapattıktan sonra anahtarın çalışmadığını fark etmektir. Güvenli yöntem ayarı tek seferde değiştirmek değil; kurtarma erişimini doğrulamak, yeni anahtarı ayrı oturumda sınamak ve ancak bundan sonra parola doğrulamasını kapatmaktır.
Kurtarma yolunu ve mevcut ayarı kaydedin
Bulut paneli, hipervizör konsolu, KVM veya fiziksel erişim seçeneklerinden en az birini deneyin. Ardından sunucudaki etkin SSH ayarını ve yapılandırma dosyalarını yedekleyin:
sudo cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.before-key-auth
sudo sshd -T | grep -Ei 'pubkeyauthentication|passwordauthentication|permitrootlogin|authorizedkeysfile'
sudo systemctl status ssh --no-pager
sshd -T etkin yapılandırmayı gösterir. Ubuntu 26.04 LTS'de sshd.service adı ssh.service için takma ad olarak kullanılabilse de sisteminizde görünen gerçek birim adını esas alın.
Anahtarı istemci tarafında oluşturun
ssh-keygen -t ed25519 -a 64 -f ~/.ssh/netopsiyon_admin
Özel anahtarı sunucuya kopyalamayın ve mesajlaşma araçlarında paylaşmayın. Anahtar için güçlü bir parola kullanmak, istemci cihaz ele geçirildiğinde ek koruma sağlar. Genel anahtarı hedef hesaba aktarın:
ssh-copy-id -i ~/.ssh/netopsiyon_admin.pub operator@203.0.113.10
ssh-copy-id yoksa yalnızca .pub dosyasının tek satırlık içeriğini hedef kullanıcının ~/.ssh/authorized_keys dosyasına ekleyin.
Sunucudaki sahiplik ve izinleri kontrol edin
sudo -u operator stat -c '%U:%G %a %n' \
/home/operator /home/operator/.ssh /home/operator/.ssh/authorized_keys
Gerekirse hedef kullanıcıyla şu izinleri uygulayın:
sudo chown -R operator:operator /home/operator/.ssh
sudo chmod 700 /home/operator/.ssh
sudo chmod 600 /home/operator/.ssh/authorized_keys
Ev dizini veya .ssh klasörünün başka kullanıcılar tarafından yazılabilir olması, StrictModes nedeniyle anahtarın reddedilmesine yol açabilir.
Parolayı kapatmadan ikinci oturum açın
ssh -i ~/.ssh/netopsiyon_admin \
-o IdentitiesOnly=yes operator@203.0.113.10
Yeni oturumda aşağıdaki kontrolleri yapın:
whoami
sudo -v
sudo sshd -T | grep -Ei 'pubkeyauthentication|passwordauthentication'
İstemci hâlâ parola soruyorsa ayrıntılı bağlantı çıktısı alın:
ssh -vvv -i ~/.ssh/netopsiyon_admin \
-o IdentitiesOnly=yes operator@203.0.113.10
Sunucu tarafında aynı denemeyi ayrı pencerede izlemek için sudo journalctl -u ssh -f kullanılabilir.
Parola doğrulamasını bir drop-in dosyasıyla kapatın
Dağıtımın ana dosyasını büyük ölçüde değiştirmek yerine yerel ayarı ayrı dosyada tutmak takibi kolaylaştırır:
sudoedit /etc/ssh/sshd_config.d/90-local-auth.conf
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
Yapılandırmayı uygulamadan önce sözdizimini denetleyin:
sudo sshd -t
sudo sshd -T | grep -Ei 'pubkeyauthentication|passwordauthentication|kbdinteractiveauthentication|permitrootlogin'
sshd -t çıktı vermeden sıfır koduyla biterse yapılandırma sözdizimi geçerlidir. Ardından mevcut bağlantıları düşürmeden yapılandırmayı yeniden yükleyin:
sudo systemctl reload ssh
Son testi parola yöntemini zorlayarak yapın
Anahtarlı yeni oturumun çalıştığını bir kez daha doğrulayın. Parola yolunun kapandığını görmek için ayrı bir istemci testi uygulayın:
ssh -o PubkeyAuthentication=no \
-o PreferredAuthentications=password operator@203.0.113.10
Bu deneme parola girişine izin vermemeli, anahtarlı bağlantı ise çalışmalıdır. İki koşul birlikte doğrulanmadan eski yönetici oturumunu kapatmayın. Sorun çıkarsa açık oturumdan drop-in dosyasını düzeltin veya yedeğe dönün; bağlantı kesildiyse önceden test edilen konsol erişimini kullanın.
Teknik başvuru: Ubuntu 26.04 OpenSSH değişiklikleri ve sshd_config kılavuzu.
Benzer Yazılar