SSH Nedir?
SSH, Güvenli Kabuk (Secure Shell) anlamına gelir. SSH ile bağlantı şifreli olduğu için uzak makinelere güvenli bir şekilde erişebilirsiniz. Linux terminalindeki ssh komutuyla uzak Linux sunucularına bağlanabilir ve sanki kendi bilgisayarımızmış gibi çalışabiliriz. Bu eğitimin sonunda, uzak bir sunucuya bağlanmak için SSH'yi nasıl kullanacağınızı tam olarak anlamış olacaksınız: Ubuntu.
Sözdizimi
Sözdizimi, ssh komutunu nasıl kullanabileceğinizin kuralıdır. Sözdizimini yeniden düzenleyebilirsiniz, ancak doğrudan bir biçim izlenmelidir. Aşağıda ssh komutunu kullanmak için bir sözdizimi örneği verilmiştir:
|
1 |
ssh remote_host |
Bağlanmak istediğiniz alan adı veya IP adresi, yukarıdaki komutta gösterildiği gibi remote_host'tur. Bu sözdizimi, uzak sistemdeki ve yerel sisteminizdeki kullanıcı adınızın aynı olduğunu varsayar. Ancak, kullanıcı adlarının aynı olmaması durumunda, bunu şu komutla belirtebilirsiniz:
|
1 |
ssh remote_username@remote_host |
Sunucuya bağlandığınızda hemen bir şifre girerek kimliğinizi doğrulamanız gerekecektir. Yerel oturumunuza geri dönmek için exit komutunu yazın.
SSH Nasıl Yapılandırılır
Ubuntu'daki ana sshd yapılandırma dosyası /etc/ssh/sshd_config adresinde bulunur. SSH yapılandırmasını değiştirirseniz, SSHD sunucu ayarları otomatik olarak değişecektir. Herhangi bir yapılandırmadan önce, bu komutu kullanarak dosyanın mevcut sürümünü yedeklediğinizden emin olun:
|
1 |
sudo cp /etc/ssh/sshd_config{,.bak} |
Açmak için bir metin düzenleyici kullanın:
|
1 |
sudo nano /etc/ssh/sshd_config |
Bu dosyadaki parametrelerin çoğuna dokunmamalısınız. Ancak dikkat etmeniz gereken birkaç şey var:
|
1 |
Port 22 |
Port bildirimleri, SSHD sunucusunun bağlantıları beklediği portu belirtir. Varsayılan değer 22'dir. Özel nedenler olmadıkça bu ayarı değiştirmenize gerek yoktur:
|
1 2 3 |
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key |
Host anahtarı bildirimi, genel host anahtarının nerede bulunduğunu belirtir:
|
1 2 |
SyslogFacility AUTH LogLevel INFO |
Tutulması gereken günlüklerin (log) düzeyi bu iki öğeyle belirtilir. SSH kullanırken sorun yaşıyorsanız, sorunu tespit etmenin mükemmel bir yolu günlük sayısını artırmaktır:
|
1 2 3 |
LoginGraceTime 120 PermitRootLogin yes StrictModes yes |
Bu seçenekler, yapılandırma dosyaları güvensiz olduğunda yetkisiz girişi önlemek için girişle ilgili bazı bilgileri tanımlar:
|
1 2 |
X11Forwarding yes X11DisplayOffset 10 |
Bu parametre yapılandırmaları X11 yönlendirme işlevleri olarak adlandırılır. Bu sayede uzak sistemin grafik arayüzünü (GUI) yerel sistemde görüntüleyebilirsiniz. SSH istemcisine -X seçeneğiyle bağlanırken sunucuda bu seçeneği etkinleştirmeniz gerekir.
Değişiklikleri yaptıktan sonra CTRL-X ve Y tuşlarına basıp ardından Enter tuşuna basarak dosyayı kaydedip kapatın. Eğer /etc/ssh/sshd_config dosyasındaki ayarları değiştirirseniz, değişikliği uygulamak için sshd sunucusunu yeniden başlatmalısınız:
|
1 |
sudo service ssh restart |
Ubuntu 16.04 veya Debian Jessie gibi systemd sistemleri için bu komutu kullanın:
|
1 |
sudo systemctl restart ssh |
Her şeyin mükemmel çalıştığından emin olmak için değişikliklerinizi iyice test edin. Herhangi bir değişiklik yaparsanız muhtemelen bazı oturumları aktif tutmalısınız. Bu sayede gerekirse yapılandırmayı geri yükleyebilirsiniz.
Anahtarlarla SSH'ye nasıl giriş yaparsınız? Uzak bir sisteme şifre ile giriş yapmak iyidir. Ancak, en iyisi anahtar tabanlı kimlik doğrulaması ayarlamaktır.
Anahtar Tabanlı Kimlik Doğrulama Nedir?
Anahtar tabanlı kimlik doğrulama, özel (private) ve genel (public) anahtar olarak adlandırılan iki anahtar çifti oluşturur. Özel anahtar kullanıcının bilgisayarında bulunur, korunur ve gizli tutulur. Genel anahtar ise herkese açık hale getirilebilir veya erişmek istediğiniz herhangi bir sunucuda saklanabilir. Bir anahtar çifti kullanarak bağlanmaya çalışırsanız, sunucu genel anahtarı kullanarak kullanıcı bilgisayarı için bir mesaj oluşturur. Kullanıcı bu mesajı yalnızca özel anahtarı kullanarak okuyabilir. Kullanıcı bilgisayarı daha sonra sunucuya bir yanıt gönderir ve sunucu kullanıcının gerçek olduğunu anlar. Anahtar ayarlandıktan sonra tüm süreç arka planda otomatik olarak tamamlanır.
SSH Anahtarları Nasıl Oluşturulur
SSH anahtarları, giriş yapmak istediğiniz bilgisayarda oluşturulmalıdır. Bu genellikle yerel bilgisayarınızdır. Komut satırına aşağıdakini girin:
|
1 |
ssh-keygen -t rsa |
Ardından, ENTER TUŞUNA basarak varsayılan değerleri kabul edin. Anahtarlarınızı ~/.ssh/id_rsa.pub ve ~/.ssh/id_rsa konumlarında oluşturacaktır. Sonra, .ssh dizinine geçmek için aşağıdaki komutu yazın:
|
1 |
cd ~/.ssh |
Dosya izinleri şunlardır:
|
1 |
ls -l |

Gördüğünüz gibi, id_rsa dosyasını yalnızca sahibi okuyabilir ve yazabilir. Bu nedenle, onu güvende tutmalısınız. Ancak, id_rsa.pub dosyasını paylaşabilir ve bu işlem için uygun izinlere sahip olabilirsiniz. Bir sonraki adım, aşağıdaki sözdizimini kullanarak genel anahtarı sunucuya aktarmaktır:
|
1 |
ssh-copy-id remote_host |
Bu işlem bir SSH oturumu başlatır ve kimlik doğrulama için bir şifre kullanmanız gerekir. Şifreyi girdikten sonra, genel anahtarınız sunucunun yetkilendirilmiş anahtar dosyasına kopyalanacaktır, böylece bir sonraki sefer şifresiz giriş yapabilirsiniz.
Şifre Kimlik Doğrulaması Nasıl Devre Dışı Bırakılır
Bir SSH anahtarı oluşturulduysa, yalnızca şifreyle kimlik doğrulamayı devre dışı bırakarak sunucunun güvenliğini artırabilirsiniz. Konsolu kullanmak yerine, sunucuya yüklenmiş genel anahtarla birlikte özel anahtarı kullanarak sunucuda oturum açabilirsiniz.
Not: Bu adıma geçmeden önce genel anahtarı sunucuya yüklediğinizden emin olun. Aksi takdirde engellenirsiniz!
Bu komutu kullanarak sshd yapılandırma dosyasını açın:
|
1 |
sudo nano /etc/ssh/sshd_config |
Başındaki # işaretini silerek PasswordAuthentication satırını bulun ve yorum satırı olmaktan çıkarın. Ardından değeri “no” olarak değiştirebilirsiniz:
|
1 |
PasswordAuthentication no |
PubkeyAuthentication ve ChallengeResponseAuthentication varsayılan olarak ayarlanmıştır ve şu şekilde görünmelidir:
|
1 2 |
PubkeyAuthentication yes ChallengeResponseAuthentication no |
Bu iki ayarı değiştirmemelisiniz. Bundan sonra, değişiklikleri yaptıktan sonra dosyayı kaydedip kapatın. Ardından, SSH arka plan programını (daemon) yeniden başlatmak için aşağıdaki komutu kullanın:
|
1 |
sudo systemctl restart ssh |
Son olarak, Şifre kimlik doğrulamasını devre dışı bıraktınız ve sunucunuza artık yalnızca SSH anahtarı kimlik doğrulaması kullanılarak erişilebilir.
Sonuç
Bu eğitimde, Ubuntu'da uzak bir sunucuya güvenli bir şekilde bağlanmak için SSH'yi nasıl kullanacağınızı gösterdik. Eğer bir sistem yöneticisiyseniz SSH kullanmayı öğrenmek temel bir gerekliliktir, bu nedenle bu eğitimde uzmanlaştıktan sonra SSH'nin daha gelişmiş özellikleriyle devam edebilirsiniz.
Keyifli çalışmalar!
Yorumlar
Henüz yorum yapılmamış. İlk siz olun.