giriiş
Bir sistem yöneticisi olarak ustalaşmanız gereken temel araçlardan biri SSH'dir. SSH veya Güvenli Kabuk, uzak sistemlere güvenli bir şekilde giriş yapmak için kullanılan bir protokoldür. Linux sunucularına uzaktan erişmenin en yaygın yoludur. Bu kılavuzda, uzak bir sisteme bağlanmak için SSH'nin nasıl kullanılacağını ele alacağız.
Çekirdek sözdizimi
SSH kullanarak uzak bir sisteme bağlanmak için ssh komutunu kullanırız. Windows kullanıyorsanız, terminalden ssh bağlantısı kurabilmek için bir OpenSSH sürümü yüklemeniz gerekir. PowerShell'de çalışmayı tercih ediyorsanız, PowerShell'e OpenSSH eklemek için Microsoft belgelerini takip edebilirsiniz. Tam bir Linux ortamına sahip olmak istiyorsanız, varsayılan olarak ssh içeren Linux için Windows Alt Sistemi olan WSL'yi kurabilirsiniz. Son olarak, üçüncü bir hafif seçenek olarak, ssh komutunu içeren bir Windows bash terminal ortamı sağlayan Windows için Git'i yükleyebilirsiniz. Bunların her biri iyi desteklenir ve hangisini kullanacağınız tamamen tercihinize bağlıdır. Mac veya Linux kullanıyorsanız, terminalinizde ssh komutu zaten mevcut olacaktır.
Komutun en basit hali şu şekildedir:
ssh remote_hostBu örnekte remote_host, bağlanmak istediğiniz IP adresi veya etki alanı adıdır. Bu komut, uzak sistemdeki kullanıcı adınızın yerel sistemdeki kullanıcı adınızla aynı olduğunu varsayar.
Uzak sistemde kullanıcı adınız farklıysa, bunu şu sözdizimini kullanarak belirtebilirsiniz:
ssh remote_username@remote_hostSunucuya bağlandıktan sonra, bir parola girerek kimliğinizi doğrulamanız istenebilir. Parolalar yerine kullanılacak anahtarların nasıl üretileceğine daha sonra bakacağız.
SSH'den çıkıp yerel kabuğunuza dönmek için şunu yazın:
exitSSH nasıl çalışır?
SSH, bir istemci programını sshd adlı bir ssh sunucusuna bağlayarak çalışır. Önceki bölümde, istemci programı ssh'ydi. Ssh sunucusu, belirttiğimiz uzak_ana_bilgisayarda zaten çalışıyordu. Hemen hemen tüm Linux ortamlarında, sshd sunucusu otomatik olarak başlatılmalıdır. Herhangi bir nedenle çalışmıyorsa, sunucunuza web tabanlı bir konsol veya yerel seri konsol aracılığıyla geçici olarak erişmeniz gerekebilir. Ssh sunucusunu başlatmak için gereken işlem, kullandığınız Linux dağıtımına bağlıdır.
Ubuntu'da ssh sunucusunu başlatmak için şunu yazabilirsiniz:
sudo systemctl start sshBu sshd sunucusunu başlatacaktır ve sonrasında uzaktan oturum açabilirsiniz.
SSH nasıl yapılandırılır
SSH yapılandırmasını değiştirdiğinizde, sshd sunucusunun ayarlarını da değiştirirsiniz. Ubuntu'da ana sshd yapılandırma dosyası /etc/ssh/sshd_config konumunda bulunur. Düzenlemeden önce, bu dosyanın güncel sürümünü yedekleyin:
sudo cp /etc/ssh/sshd_config{,.bak}Nano'yu veya favori metin düzenleyicinizi kullanarak açın:
sudo nano /etc/ssh/sshd_configBu dosyadaki seçeneklerin çoğunu olduğu gibi bırakmak isteyeceksiniz. Ancak, göz atmak isteyebileceğiniz birkaç seçenek var:
Port 22Port bildirimi, sshd sunucusunun bağlantılar için hangi portu dinleyeceğini belirtir. Varsayılan olarak bu değer 22'dir. Özel bir nedeniniz yoksa bu ayarı olduğu gibi bırakmalısınız. Portunuzu değiştirirseniz, aşağıda yeni porta nasıl bağlanacağınızı göstereceğiz.
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_keyAna bilgisayar anahtarı bildirimleri, genel ana bilgisayar anahtarlarının nerede aranacağını belirtir. Ana bilgisayar anahtarının ne olduğunu daha sonra ele alacağız.
SyslogFacility AUTH
LogLevel INFOBu iki madde, ne düzeyde günlük kaydı yapılması gerektiğini gösterir.
Eğer SSH ile ilgili sorun yaşıyorsanız, kayıt oranını artırmak sorunu tespit etmenin iyi bir yolu olabilir.
LoginGraceTime 120
PermitRootLogin yes
StrictModes yesBu parametreler bazı giriş bilgilerini belirtir.
LoginGraceTime, başarılı bir oturum açma işlemi yapılmadığı takdirde bağlantının kaç saniye açık tutulacağını belirtir. Bu süreyi normal bir oturum açma süresinden biraz daha uzun olarak ayarlamak iyi bir fikir olabilir. PermitRootLogin, kök kullanıcının oturum açmasına izin verilip verilmeyeceğini belirler. Çoğu durumda, yükseltilmiş ayrıcalıklara sahip (su veya sudo aracılığıyla) ve sunucunuza kök erişimi riskini en aza indirmek için ssh üzerinden oturum açabilen bir kullanıcı hesabı oluşturduğunuzda bu değer "hayır" olarak değiştirilmelidir. .strictModes, kimlik doğrulama dosyaları herkes tarafından okunabilirse oturum açma girişimlerini reddeden bir güvenlik korumasıdır. Bu, yapılandırma dosyaları güvenli olmadığında oturum açma girişimlerini engeller.
X11Forwarding yes
X11DisplayOffset 10Bu parametreler, X11 Yönlendirme adlı bir özelliği yapılandırır. Bu özellik, uzak bir sistemin grafiksel kullanıcı arayüzünü (GUI) yerel sistemde görüntülemenizi sağlar. Bu seçenek sunucuda etkinleştirilmeli ve bir SSH istemcisine -X seçeneğiyle bağlanırken verilmelidir. Değişikliklerinizi yaptıktan sonra dosyayı kaydedip kapatın. Nano kullanıyorsanız, Ctrl+X tuşlarına, ardından istendiğinde Y ve Enter tuşlarına basın. /etc/ssh/sshd_config dosyasında herhangi bir ayarı değiştirdiyseniz, değişikliklerinizi uygulamak için sshd sunucunuzu yeniden yüklediğinizden emin olun:
sudo systemctl reload sshDeğişikliklerinizin beklediğiniz gibi çalıştığından emin olmak için kapsamlı bir test yapmalısınız. Değişiklik yaparken birkaç terminal oturumunun açık olması iyi bir fikir olabilir. Bu, gerekirse kendinizi kilitlemeden yapılandırmayı geri almanızı sağlar.
Anahtarlarla SSH'ye nasıl giriş yapılır?
Uzaktan şifre kullanarak oturum açmak faydalı olsa da, anahtar tabanlı kimlik doğrulamayı ayarlamak daha hızlı ve daha güvenlidir.
Anahtar tabanlı kimlik doğrulama nasıl çalışır?
Anahtar tabanlı kimlik doğrulama, bir anahtar çifti oluşturarak çalışır: özel anahtar ve genel anahtar. Özel anahtar istemci makinesinde bulunur ve güvenli ve gizli tutulur. Genel anahtar herkese verilebilir veya erişmek istediğiniz herhangi bir sunucuya yerleştirilebilir. Bir anahtar çifti kullanarak bağlanmaya çalıştığınızda, sunucu genel anahtarı kullanarak istemci bilgisayar için yalnızca özel anahtar tarafından okunabilen bir mesaj oluşturur. İstemci bilgisayar daha sonra sunucuya uygun yanıtı gönderir ve sunucu, istemcinin geçerli olduğunu bilir. Bu işlem, anahtarlarınızı yapılandırdıktan sonra otomatik olarak gerçekleştirilir.
SSH anahtarları nasıl oluşturulur?
SSH anahtarları, oturum açmak istediğiniz bilgisayarda oluşturulmalıdır. Bu genellikle yerel bilgisayarınızdır.
Komut satırına aşağıdakileri girin:
ssh-keygen -t rsaAnahtar dosyalarının kendileri için bir parola belirlemeniz istenebilir, ancak bu oldukça nadir görülen bir uygulamadır ve varsayılanları kabul etmek için komutlar arasında Enter tuşuna basmanız gerekir. Anahtarlarınız ~/.ssh/id_rsa.pub ve ~/.ssh/id_rsa dizinlerinde oluşturulacaktır.
Aşağıdaki kodu yazarak .ssh dizinine geçin:
cd ~/.sshDosya izinlerine bakalım:
ls -lOutput
-rw-r--r-- 1 demo demo 807 Sep 9 22:15 authorized_keys
-rw------- 1 demo demo 1679 Sep 9 23:13 id_rsa
-rw-r--r-- 1 demo demo 396 Sep 9 23:13 id_rsa.pubGördüğünüz gibi, id_rsa dosyası yalnızca sahibi tarafından okunabilir ve yazılabilir. Bu, dosyanın gizli kalmasına yardımcı olur.
Ancak id_rsa.pub dosyası paylaşılabilir ve bu aktivite için uygun izinlere sahiptir.
Genel anahtar sunucuya nasıl aktarılır?
Şu anda bir sunucuya parola tabanlı erişiminiz varsa, şu komutu vererek genel anahtarınızı sunucuya kopyalayabilirsiniz:
ssh-copy-id remote_hostBu, bir SSH oturumu başlatacaktır. Parolanızı girdikten sonra, genel anahtarınız sunucunun yetkili anahtarlar dosyasına kopyalanacak ve bir sonraki sefer parolasız oturum açmanıza olanak tanıyacaktır.
İstemci tarafı seçenekleri
SSH üzerinden bağlanırken kullanabileceğiniz birkaç isteğe bağlı komut vardır. Bunlardan bazıları, uzak sunucunun sshd yapılandırmasındaki ayarlarla eşleşmek için gerekli olabilir.
Örneğin, sshd yapılandırmanızdaki port numarasını değiştirdiyseniz, istemci tarafında bu portu şu komutu yazarak eşleştirmeniz gerekir:
ssh -p port_number remote_hostUzak bir sistemde yalnızca bir komut çalıştırmak istiyorsanız, bunu ana bilgisayardan sonra şu şekilde belirtebilirsiniz:
ssh remote_host command_to_runUzaktaki cihaza bağlanırsınız, kimlik doğrulaması yaparsınız ve komut yürütülür.
Daha önce de söylediğimiz gibi, eğer X11 Forwarding her iki bilgisayarda da etkinse, aşağıdaki komutu yazarak bu işlevselliğe erişebilirsiniz:
ssh -X remote_hostBilgisayarınızda doğru araçlara sahip olduğunuz sürece, uzak sistemde kullandığınız GUI programları artık yerel sisteminizde kendi pencerelerini açacaktır.
Parola doğrulamasını devre dışı bırak
SSH anahtarları oluşturduysanız, yalnızca parola ile kimlik doğrulamayı devre dışı bırakarak sunucunuzun güvenliğini artırabilirsiniz. Konsol dışında, sunucunuza giriş yapmanın tek yolu, sunucuya yüklediğiniz genel anahtarla eşleştirilmiş özel anahtarı kullanmaktır.
Root veya sudo ayrıcalıklarına sahip bir kullanıcı olarak sshd yapılandırma dosyasını açın:
sudo nano /etc/ssh/sshd_configParola doğrulamasını içeren satırı bulun ve başındaki #'yi kaldırarak silin. Ardından değerini "hayır" olarak değiştirebilirsiniz:
PasswordAuthentication noDeğiştirilmesi gerekmeyen diğer iki ayar (bu dosyayı henüz değiştirmediyseniz) PubkeyAuthentication ve ChallengeResponseAuthentication'dır. Bunlar varsayılan olarak ayarlıdır ve aşağıdaki gibi olmalıdır:
PubkeyAuthentication yes
ChallengeResponseAuthentication noDeğişiklikleri yaptıktan sonra dosyayı kaydedip kapatın.
Artık SSH daemon'unu yeniden yükleyebilirsiniz:
sudo systemctl reload sshParola doğrulaması artık devre dışı bırakılmalı ve sunucunuza yalnızca SSH anahtar doğrulaması yoluyla erişilebilmelidir.
Sonuç
SSH kullanmayı öğrenmek, gelecekteki bulut bilişim girişimleriniz için çok faydalı olacaktır. Farklı seçenekleri kullandıkça, hayatınızı kolaylaştırabilecek daha gelişmiş işlevler keşfedeceksiniz. SSH, güvenli, hafif ve çeşitli durumlarda kullanışlı olduğu için popülerliğini korumuştur.









