Yapılandırma dosyasında (/etc/ssh/sshd_config) hata bulunması durumunda SSH hizmeti başlatılamaz. Bu konu, hatayı belirlemenize, düzeltmenize ve hizmeti yeniden başlatmanıza yardımcı olur.
Nedenler
/etc/ssh/sshd_config dosyasındaki hatalar iki kategoriye ayrılır:
Sözdizimi hatası: Bir yapılandırma seçeneği yanlış yazılmıştır veya değeri izin verilen aralık ya da önceden tanımlanmış bir liste dışında kalmıştır (örneğin açık/kapalı, doğru/yanlış veya belirli bir sayısal aralık).
Dosya kodlama hatası: Dosyada Byte Order Mark (BOM) bulunur veya CRLF satır sonları kullanılır. Bu durum genellikle dosyanın bir Windows sisteminden düzenlenmesi veya aktarılması sonucu oluşur.
Çözüm 1: SSH yapılandırma dosyasındaki hataları düzeltme
Adım 1: VNC üzerinden örneğe bağlanma
SSH kullanılamadığından örneğe erişmek için VNC bağlantısı kullanın.
ECS console - Instance adresine gidin. Üst gezinme çubuğunda hedef bölgeyi ve kaynak grubunu seçin.
Örnek ayrıntıları sayfasında Connect seçeneğine tıklayın. Uzak bağlantı iletişim kutusunda Show Other Logon Methods seçeneğine tıklayarak VNC seçeneğini gösterin, ardından VNC yanındaki Sign in now seçeneğine tıklayın. Örneğe oturum açmak için kullanıcı adını ve parolayı girin.
Adım 2: Yapılandırmayı tanılama
SSH yapılandırma test komutunu çalıştırın:
sudo /usr/sbin/sshd -t
Çıktı, dosya adı, satır numarası ve hata türünü belirtir. Örneğin:
Kullanımdan kaldırılmış yapılandırma seçeneği
/etc/ssh/sshd_config: line 82: Bad configuration option: RSAAuthentication
Geçersiz yapılandırma seçeneği değeri
/etc/ssh/sshd_config: line 23: bad value for Port "222222"
Kesin hata mesajı biçimi OpenSSH sürümüne göre değişir. Örneğin, OpenSSH 8,0p1Deprecated option RSAAuthenticationçıktısınıBad configuration option: RSAAuthenticationyerine verir.
Komut herhangi bir çıktı döndürmezse yapılandırma doğrudur. 5. Adım bölümüne geçin.
Adım 3: Yapılandırma dosyasını düzeltme
Yapılandırma dosyasını açın:
sudo vim /etc/ssh/sshd_config
Hata mesajında belirtilen satır numarasına gidin ve uygun düzeltmeyi uygulayın:
Kullanımdan kaldırılmış yapılandırma seçenekleri
OpenSSH, daha yeni sürümlerde eski seçeneklere yönelik desteği kaldırır. Kaldırılan seçeneği içeren satırı yorum satırı yapın veya silin.
| Kullanımdan kaldırılan seçenek | Kullanımdan kaldırıldığı sürüm |
|---|---|
RSAAuthentication |
OpenSSH 7.0 ve üzeri |
UsePrivilegeSeparation |
OpenSSH 7.5 ve üzeri (artık varsayılan davranış) |
Geçersiz seçenek değerleri
Bildirim yapılan satırdaki değeri düzeltin. Geçerli değerler için man sshd_config komutunu çalıştırın.
Dosya kodlama hataları
Windows sisteminden düzenlenmiş veya kopyalanmış bir yapılandırma dosyasında BOM veya CRLF satır sonları bulunabilir. Vim kullanarak bunları kontrol edip düzeltin:
Satır sonlarını kontrol etme:
:set fileformat?
Çıktı fileformat=dos ise dosya CRLF satır sonları kullanır. Düzeltmek için şunu çalıştırın:
:set fileformat=unix
BOM olup olmadığını kontrol etme:
:set bomb?
Çıktı bomb ise dosyada BOM bulunur. Düzeltmek için şunu çalıştırın:
:set nobomb
Değişiklikleri yaptıktan sonra dosyayı kaydedin (:wq).
OpenSSH'in daha yeni sürümleri (örneğin 8,0p1), CRLF satır sonlarına tolerans gösterebilir ve hizmetin başlatılmamasına neden olmayabilir. Ancak, diğer araçlar ve eski OpenSSH sürümleriyle ilgili sorunları önlemek amacıyla Unix formatına dönüştürülmesi yine de önerilir.
Yapılandırma dosyası ciddi şekilde bozulmuşsa ve tek tek hataları belirleyemiyorsanız Çözüm 2: SSH hizmetini yeniden yükleme bölümüne ilerleyin.
Adım 4: Düzeltmeyi doğrulama
Yapılandırma testini tekrar çalıştırın:
sudo /usr/sbin/sshd -t
Herhangi bir çıktı yoksa yapılandırma doğrudur.
Adım 5: SSH hizmetini yeniden başlatma ve doğrulama
Hizmeti yeniden başlatın:
sudo systemctl restart sshd
Hizmet durumunu doğrulayın:
sudo systemctl status sshd
Çıktıda active (running) ifadesi yer alıyorsa SSH hizmeti başarıyla başlatılmıştır.
Çözüm 2: SSH hizmetini yeniden yükleme
Yapılandırma dosyası onarılamayacak kadar bozuksa SSH hizmetini yeniden yükleyin. Bu işlem, yapılandırma dosyasını temiz bir varsayılan dosya ile değiştirir.
Yeniden yükleme, değiştirilmiş bağlantı noktası ve anahtar tabanlı kimlik doğrulama ayarları dahil olmak üzere tüm özel yapılandırmaları kaldırır. Devam etmeden önce dosyayı yedekleyin.
Adım 1: VNC üzerinden örneğe bağlanma
ECS console - Instance adresine gidin. Üst gezinme çubuğunda hedef bölgeyi ve kaynak grubunu seçin.
Örnek ayrıntıları sayfasında Connect seçeneğine tıklayın. Uzak bağlantı iletişim kutusunda Show Other Logon Methods seçeneğine tıklayarak VNC seçeneğini gösterin, ardından VNC yanındaki Sign in now seçeneğine tıklayın. Örneğe oturum açmak için kullanıcı adını ve parolayı girin.
Adım 2: Yapılandırma dosyasını yedekleme
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup-$(date +%Y%m%d-%H%M%S)
Adım 3: SSH hizmetini kaldırıp yeniden yükleme
Kaldırma:
sudo rpm -e openssh-server
Yeniden yükleme:
sudo yum install openssh-server
Kurulumdan sonra özel yapılandırmalarınızı yedek dosyasından yeni /etc/ssh/sshd_config dosyasına aktarın.
Adım 4: SSH hizmetini başlatma ve doğrulama
Hizmeti başlatın:
sudo systemctl start sshd
Hizmet durumunu doğrulayın:
sudo systemctl status sshd
Çıktıda active (running) ifadesi yer alıyorsa SSH hizmeti başarıyla başlatılmıştır.