Süper Yönetici
- Katılım
- 18 Tem 2022
- Konular
- 382
- Mesajlar
- 5,198
- Reaksiyon Skoru
- 2,953
- Altın Konu
- 70
- Başarım Puanı
- 237
- TM Yaşı
- 6 Ay 19 Gün
- Online Süresi
- 43d 2h 21m
- MmoLira
- 2,647
- DevLira
- 462
- Takipçiler
- 30
Bu nedenle RSA anahtar tabanlı kimlik doğrulaması çok daha iyidir. Linux sunucunuzu, yalnızca zaten kabul edilmiş RSA anahtarlarına sahip bilgisayarlardan erişime izin verecek şekilde yapılandırabilir ve güvenliğini sağlayabilirsiniz. Başkaları derhal reddedilecektir. Ek bir avantaj olarak, bu anahtarları parolalı veya parolasız olarak oluşturabilirsiniz, bu da tamamen size bağlıdır. Yine de, parolası olmayan güçlü bir anahtar çoğu durumda iyidir.
Linux cihazlarını evde de kullanıyorsanız, ek kolaylık avantajına sahip olursunuz. Linux iş istasyonunuzdan dizüstü bilgisayarınıza SSH X-iletmeyi kurmak istediğinizi varsayalım. Uzak bir programı her çalıştırdığınızda şifrenizi gerçekten girmek istiyor musunuz?
Paketleri Yüklemeİhtiyacınız olan birkaç paket var. Muhtemelen bunlardan bazılarına zaten sahipsiniz, ancak kontrol etmek iyi bir fikirdir. Paketler hem sunucuda hem de istemcide aynıdır. Bununla birlikte, her iki makinenin de birbirlerine sunucu ve istemci olma ihtimali de yüksektir (ev durumu), bu nedenle bu paketleri yüklediğinizden emin olmak isteyebilirsiniz.
OpenSSH meta paketi, Debian veya Ubuntu sistemlerine varsayılan olarak yüklenmez. Henüz yüklemediyseniz, aşağıdaki komutu çalıştırarak bunu yapabilirsiniz:
sudo apt install ssh
SSH Anahtarınızı Linux'ta OluşturunLinux'ta SSH anahtarınızı oluşturmak gerçekten çok kolay. OpenSSH'ye anahtarı oluşturmanız gerektiğini söylemeniz yeterlidir. Ayrıca, bayrak ile bit miktarını ve . Daha güçlü şifreleme sağladığı için 4096 bit anahtar en iyisidir.
ssh-keygen -t ed25519
İlk olarak, yardımcı program anahtarı nerede saklamak istediğinizi soracaktır. Varsayılan dizin için sadece vurun. Parola istediğinde, parolasız anahtar ve parolasız kimlik doğrulaması için boş bırakın. Anahtarınız için bir parola kullanmak istiyorsanız, buraya girin.
Bilgisayarınızın anahtarınızı oluşturması birkaç saniye sürecektir. Bittiğinde, terminalde anahtarınızın ASCII sanat temsilini yazdıracaktır.
Anahtarınızı Uzak Linux Ana Bilgisayarına GöndermeAnahtarınızı kullanmak için uzak sunucunuza göndermeniz gerekir. OpenSSH'nin bunun için başka bir yerleşik yardımcı programı da vardır. Anahtarınızın nerede olduğunu ve sunucudaki hangi kullanıcıyla ilişkilendirileceğini söyleyin.
ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]_remote_host
SSH aracılığıyla yöneteceğiniz uzak ana bilgisayarın gerçek IP adresiyle değiştirin. Uzak ana bilgisayardaki gerçek kullanıcı adıyla değiştirin.ip_remote_hostusername
Ortak anahtarınızı içeren kimlik dosyasını belirtme seçeneğini kullanmanız çok önemlidir. SSH anahtarınızı bu seçenek olmadan kullanmaya çalışırsanız bir hata alabilirsiniz.
SSH Bağlantınızı Linux'ta Test EtmeSSH anahtarınız uzak sunucudayken, artık bağlantınızın düzgün çalışıp çalışmadığını sınayabilirsiniz.
Aşağıdaki komutla oturum açın:
ssh [email protected]_remote_host
Uzak ana bilgisayar, kullanıcı hesabı parolasını sormadan oturumunuzu açar.
Ancak, işlem sırasında bir hata yaptıysanız, SSH arka plan programı otomatik olarak kullanıcı hesabınız için parola kimlik doğrulamasına geri döner. Bu, çalışmayan bir RSA anahtarınız olsa bile uzak sunucunuza erişmeye devam etmenizi sağlar.
SSH'yi Parolaları Engelleyecek Şekilde YapılandırmaEn iyi güvenlik için, Linux sunucunuzda SSH parola girişlerini devre dışı bırakmanız gerekir. SSH'de iki faktörlü kimlik doğrulamayı etkinleştirmeye benzer şekilde, bu, herhangi birinin sunucunuza kaba kuvvetle girmesini önler.
Bunu yapmadan önce SSH anahtarınızla güvenilir bir şekilde oturum açabildiğinizden emin olmanız önemlidir, çünkü arızalı bir anahtarınız varsa kendinizi uzak sunucunuzdan kilitlemek mümkündür.
SSH cininizin yapılandırma dosyasını "/etc/ssh/sshd_config" içinde bulabilirsiniz. Sudo'yu ve tercih ettiğiniz metin düzenleyicisini kullanarak sunucudaki dosyayı açın. Örneğin, aşağıdaki komutu çalıştırarak nano kullanarak bu dosyayı açın:
sudo nano /etc/ssh/sshd_config
+ tuşuna basarak aşağıdaki satırları bulun ve örnek gibi görünecek şekilde düzenleyin. Her iki girişin de açıklamasını kaldırın ve değerlerini aşağıdaki gibi değiştirin.
PasswordAuthentication no
PermitEmptyPasswords no
PasswordAuthentication parola kimlik doğrulamasının kullanılıp kullanılmayacağını belirtir. Yalnızca SSH anahtarlarını kullanmak istediğimiz için bunu "hayır" olarak ayarladık.
PermitEmptyPasswords sunucunun boş bir parolayla oturum açmaya izin verip vermediğini belirtir. Buna asla izin vermemelisiniz, bu yüzden onu "hayır" olarak ayarladık.
Ardından, "UsePAM" satırını bulun ve "hayır" olarak değiştirin. Bu, arka plan programının SSH anahtarları dışında herhangi bir kimlik doğrulama yöntemi (parola, Kerberos vb.) kullanmasını engeller.
UsePAM no
+ , ardından + tuşuna basarak dosyayı kaydedin ve SSH sunucusunu yeniden yükleyin.
sudo systemctl restart ssh
Artık sunucunuzu kimlik doğrulaması için yalnızca SSH anahtarlarını kullanacak şekilde başarıyla yapılandırdığınıza göre, geçerli bir RSA anahtarı olmadan oturum açmaya çalışan herkes hemen reddedilecektir.
Sıkça Sorulan Sorular
SSH anahtarımı Linux sunucuma gönderdiğimde "Bağlantı reddedildi" mesajı alıyorum. Bunu nasıl düzeltebilirim?SSH sunucusunun uzak ana bilgisayarda çalıştığından emin olun. Bunu çalıştırarak kontrol edebilirsiniz. Hizmet çalışmıyorsa, şu komutla başlatabilirsiniz:
.sudo systemctl status sshsudo systemctl start ssh
Sunucuda bir güvenlik duvarı çalışıyorsa, 22 numaralı bağlantı noktasının açık olduğundan emin olun. Bunu çalıştırarak yapabilirsiniz. SSH listede yoksa, şu komutu çalıştırarak etkinleştirebilirsiniz: .sudo ufw statussudo ufw allow ssh
Oturum açmaya çalıştığımda "İzin reddedildi (publickey)" hatası alıyorum. Ne yapmalıyım?Bu hata, sunucunuzu kimlik doğrulaması için anahtarları kullanacak şekilde yapılandırdığınız, ancak yine de bir parolayla oturum açmaya çalıştığınız anlamına gelir. Bunun nedeni eksik RSA anahtarı veya yanlış bir SSH ayarı olabilir. Ortak anahtarınızı sunucuya doğru şekilde kopyaladığınızdan ve bağlandığınızda doğru ortak anahtarı belirttiğinizden emin olun.
SSH anahtarımı sunucuma kopyalamaya çalıştığımda "İzin Reddedildi" hatası alıyorum.Bu sorun büyük olasılıkla uzak sunucunuzdaki bir izin sorunundan kaynaklanmaktadır. Çoğu durumda, yardımcı program uzak sunucunuza bağlanır bağlanmaz erişim sorunlarını düzgün bir şekilde çözmelidir. Ancak, bu özelliğin bozulduğu ve yerel makinenizin "id_rsa" düzgün bir şekilde kopyalayamadığı durumlar vardır.
Bunu düzeltmek için, uzak sunucunuzda oturum açın.Aşağıdaki kod, hem ".ssh" klasörü hem de içeriği için doğru izin bitlerini ayarlar.
chmod 700 /home/$USER/.ssh/* && chmod 600 /home/$USER/.ssh