Güvenli Kabuk (SSH - Secure Shell), Linux sunuculara uzaktan erişim sağlamak için kullanılan en güvenli ve yaygın protokollerden biridir. SSH, ağ üzerindeki iletişimi şifreleyerek yetkisiz erişimleri önler ve yöneticilere güvenli bir yönetim ortamı sunar.
Kurulum tamamlandıktan sonra, SSH servisini çalıştırdığınızdan emin olun:
Sunucunun SSH hizmetinin çalıştığını doğrulamak için şu komutu kullanabilirsiniz:
Örneğin:
Bağlantıyı onayladıktan sonra, sistem sizden parolanızı girmenizi isteyecektir.
SSH yapılandırma dosyasını açın:
Aşağıdaki satırı bulun ve 22 yerine farklı bir port numarası belirleyin:
Değişiklikleri kaydedin ve SSH servisini yeniden başlatın:
Bağlantı kurarken yeni portu belirtmeyi unutmayın:
1. SSH Anahtar Çifti Oluşturma (İstemci Tarafında)
Komut çalıştırıldıktan sonra, oluşturulan id_rsa.pub dosyasını sunucuya kopyalayın:
Alternatif olarak, elle kopyalamak için aşağıdaki komutları kullanabilirsiniz:
2. Sunucuda Parola Girişi Zorunluluğunu Kapatma
SSH yapılandırma dosyasını düzenleyerek yalnızca anahtar tabanlı kimlik doğrulama kullanımını sağlayabilirsiniz:
Aşağıdaki satırları ekleyin veya düzenleyin:
Değişiklikleri kaydedin ve SSH servisini yeniden başlatın:
Bundan sonra, yalnızca SSH anahtarı olan kullanıcılar bağlanabilir.
SSH yapılandırma dosyasını açın:
Aşağıdaki satırı bulun ve değiştirin:
Değişiklikleri kaydedin ve SSH servisini yeniden başlatın:
Artık yalnızca belirlenen kullanıcılar SSH ile bağlantı kurabilir.
1. SSH Nedir ve Neden Kullanılır?
SSH, uzaktaki bir Linux sunucusuna şifreli bir bağlantı üzerinden erişim sağlamak için kullanılan bir ağ protokolüdür. Telnet ve FTP gibi eski protokollere kıyasla, veri iletimini şifreleyerek güvenlik açıklarını minimize eder. SSH, şu avantajları sağlar:- Güvenli Bağlantı: Tüm veri akışı şifrelenerek korunur.
- Uzaktan Yönetim: Sunuculara fiziksel erişim gerektirmeden işlem yapma imkanı sunar.
- Dosya Transferi: SCP ve SFTP gibi protokollerle güvenli dosya transferine olanak tanır.
- Yetkilendirme Mekanizması: Kullanıcı adı-şifre veya SSH anahtarları ile güçlü kimlik doğrulama sağlar.
2. Linux’ta SSH Kurulumu
Çoğu Linux dağıtımı, SSH istemcisi ile ön yüklü gelir. Ancak, bir SSH sunucusu kurmak için aşağıdaki adımları takip edebilirsiniz.Ubuntu/Debian için SSH Kurulumu
Bash:
sudo apt update
sudo apt install openssh-server -y
CentOS/RHEL için SSH Kurulumu
Bash:
sudo yum install -y openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
Bash:
sudo systemctl start ssh
sudo systemctl enable ssh
Bash:
sudo systemctl status ssh
3. SSH ile Linux Sunucusuna Bağlanma
SSH bağlantısı kurmak için istemci cihazda aşağıdaki komut kullanılabilir:
Bash:
ssh kullanıcı_adı@sunucu_ip_adresi
Bash:
4. SSH Güvenliğini Artırma
SSH bağlantısını daha güvenli hale getirmek için aşağıdaki önlemleri uygulayabilirsiniz:4.1 SSH Portunu Değiştirme
Varsayılan SSH portu 22'dir. Saldırganların kolayca erişmesini engellemek için farklı bir port kullanmak önerilir.SSH yapılandırma dosyasını açın:
Bash:
sudo nano /etc/ssh/sshd_config
Bash:
Port 2222
Bash:
sudo systemctl restart sshd
Bash:
ssh -p 2222 kullanıcı_adı@sunucu_ip_adresi
4.2 SSH Anahtar Tabanlı Kimlik Doğrulama Kullanma
Parola tabanlı kimlik doğrulama yerine SSH anahtarları kullanarak bağlantı sağlamak güvenliği artırır.1. SSH Anahtar Çifti Oluşturma (İstemci Tarafında)
Bash:
ssh-keygen -t rsa -b 4096
Bash:
ssh-copy-id kullanıcı_adı@sunucu_ip_adresi
Bash:
cat ~/.ssh/id_rsa.pub | ssh kullanıcı_adı@sunucu_ip_adresi 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
SSH yapılandırma dosyasını düzenleyerek yalnızca anahtar tabanlı kimlik doğrulama kullanımını sağlayabilirsiniz:
Bash:
sudo nano /etc/ssh/sshd_config
NGINX:
PasswordAuthentication no
PubkeyAuthentication yes
Bash:
sudo systemctl restart sshd
4.3 Root Kullanıcısının SSH Erişimini Kapatma
Güvenliği artırmak için root kullanıcısının doğrudan SSH erişimini devre dışı bırakabilirsiniz.SSH yapılandırma dosyasını açın:
Bash:
sudo nano /etc/ssh/sshd_config
NGINX:
PermitRootLogin no
Bash:
sudo systemctl restart sshd
5. SSH Bağlantı Problemleri ve Çözümleri
SSH bağlantısında yaşanabilecek yaygın sorunlar ve çözümleri şunlardır:- Bağlantı Reddedildi:
- SSH servisini başlatmayı deneyin:
Bash:sudo systemctl start sshd
- Doğru IP adresini ve portu kullandığınızdan emin olun.
- SSH servisini başlatmayı deneyin:
- Yetkilendirme Hatası:
- SSH anahtarlarınızın doğru kopyalandığını kontrol edin.
chmod 600 ~/.ssh/authorized_keys
komutu ile dosyanın izinlerini düzenleyin.
- Bağlantı Zaman Aşımına Uğruyor:
- Güvenlik duvarı ayarlarını kontrol edin ve SSH portunu açın:
Bash:sudo ufw allow 2222/tcp
- Güvenlik duvarı ayarlarını kontrol edin ve SSH portunu açın: