Uzak Sunucuya Bağlanmak için SSH Nasıl Kullanılır
SSH kullanarak uzak bir sisteme bağlanmak için ssh
komutu kullanacağız.
ssh
Windows kullanıyorsanız, bir terminalden yapabilmek için bir OpenSSH sürümü yüklemeniz gerekir . PowerShell’de çalışmayı tercih ederseniz, PowerShell’e OpenSSH eklemek için Microsoft’un belgelerini takip edebilirsiniz. Tam bir Linux ortamına sahip olmayı tercih ediyorsanız, varsayılan olarak içerecek olan Linux için Windows Alt Sistemi olan WSL’yi kurabilirsiniz. Son olarak, hafif bir üçüncü seçenek olarak, komutu içeren yerel bir Windows bash terminal ortamı sağlayan Windows için Git’issh
yükleyebilirsiniz. Bunların her biri iyi desteklenmiştir ve hangisini kullanmaya karar verirseniz, tercihiniz o olacaktır.
ssh
Mac veya Linux kullanıyorsanız, komut zaten terminalinizde mevcut olacaktır .
Komutun en basit şekli şudur:
ssh remote_host
Bu remote_host
örnekte, bağlanmaya çalıştığınız IP adresi veya alan adı verilmiştir.
Bu komut, uzak sistemdeki kullanıcı adınızın yerel sisteminizdeki kullanıcı adınızla aynı olduğunu varsayar.
Kullanıcı adınız uzak sistemde farklıysa, bu sözdizimini kullanarak bunu belirtebilirsiniz:
ssh remote_username@remote_host
Sunucuya bağlandıktan sonra, bir şifre sağlayarak kimliğinizi doğrulamanız istenebilir. Daha sonra, şifreler yerine kullanılacak anahtarların nasıl oluşturulacağını ele alacağız.
ssh oturumundan çıkmak ve yerel kabuk oturumunuza geri dönmek için şunu yazın:
exit
SSH Nasıl Çalışır?
SSH, bir istemci programını , adı verilen bir ssh sunucusuna bağlayarak çalışır sshd
.
Önceki bölümde, ssh
istemci programı vardı. Ssh sunucusu zaten remote_host
belirttiğimiz sunucuda çalışıyordu .
Neredeyse tüm Linux ortamlarında sshd
sunucu otomatik olarak başlamalıdır. Herhangi bir nedenle çalışmıyorsa, sunucunuza web tabanlı bir konsol veya yerel seri konsol üzerinden geçici olarak erişmeniz gerekebilir.
Bir 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 şunu yazarak başlatabilirsiniz:
sudo systemctl start ssh
Bu, sshd sunucusunu başlatmalı ve ardından 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ı değiştirmiş olursunuz.
Ubuntu’da ana sshd yapılandırma dosyası /etc/ssh/sshd_config
.
Düzenlemeden önce bu dosyanın mevcut sürümünü yedekleyin:
sudo cp /etc/ssh/sshd_config{,.bak}
nano
Kullanarak veya favori metin düzenleyicinizi kullanarak açın :
sudo nano /etc/ssh/sshd_config
Bu dosyadaki seçeneklerin çoğunu yalnız bırakmak isteyeceksiniz. Ancak, bakmak isteyebileceğiniz birkaç tane var: /etc/ssh/sshd_config
Port 22
Bağlantı noktası bildirimi, sshd sunucusunun bağlantılar için hangi bağlantı noktasını dinleyeceğini belirtir. Varsayılan olarak, bu 22
. Aksini yapmak için özel nedenleriniz olmadıkça, muhtemelen bu ayarı kendi haline bırakmalısınız. Bağlantı noktanızı değiştirirseniz , size daha sonra yeni bağlantı noktasına nasıl bağlanacağınızı göstereceğiz. /etc/ssh/sshd_config
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
Ana bilgisayar anahtarları bildirimleri, genel ana bilgisayar anahtarlarının nerede aranacağını belirtir. Ana bilgisayar anahtarının ne olduğunu daha sonra tartışacağız. /etc/ssh/sshd_config
SyslogFacility AUTH
LogLevel INFO
Bu iki öğe, gerçekleşmesi gereken günlüğe kaydetme düzeyini gösterir.
SSH ile ilgili sorun yaşıyorsanız, günlük kaydı miktarını artırmak sorunun ne olduğunu keşfetmenin iyi bir yolu olabilir. /etc/ssh/sshd_config
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
Bu parametreler bazı oturum açma bilgilerini belirtir.
LoginGraceTime
başarıyla oturum açmadan bağlantının kaç saniye canlı tutulacağını belirtir.
Bu süreyi, normal olarak oturum açmanız için geçen süreden biraz daha yüksek bir süreye ayarlamak iyi bir fikir olabilir.
PermitRootLogin
root kullanıcının oturum açmasına izin verilip verilmeyeceğini seçer .
Çoğu durumda, bu , herhangi birinin sunucunuza kök erişimi elde etme riskini en aza indirmek için yükseltilmiş ayrıcalıklara ( veya no
aracılığıyla) erişimi olan ve ssh üzerinden oturum açabilen bir kullanıcı hesabı oluşturduğunuzda değiştirilmelidir.su
sudo
strictModes
kimlik doğrulama dosyaları herkes tarafından okunabiliyorsa, oturum açma girişimini reddeden bir güvenlik görevlisidir.
Bu, yapılandırma dosyaları güvenli olmadığında oturum açma girişimlerini önler. /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
Bu parametreler, X11 Forwarding adlı bir yeteneği yapılandırır . Bu, yerel sistemde uzak bir sistemin grafik kullanıcı arabirimini (GUI) görüntülemenize olanak tanır.
Bu seçenek sunucuda etkinleştirilmeli ve -X
seçenek ile bağlantı sırasında SSH istemcisi ile birlikte verilmelidir.
Değişikliklerinizi yaptıktan sonra dosyayı kaydedip kapatın. kullanıyorsanız , istendiğinde , nano
tuşuna ve ardından Enter tuşuna basın. Ctrl+X
Y
içinde herhangi bir ayarı değiştirdiyseniz /etc/ssh/sshd_config
, değişikliklerinizi uygulamak için sshd sunucunuzu yeniden yüklediğinizden emin olun:
sudo systemctl reload ssh
Beklediğiniz şekilde çalıştıklarından emin olmak için değişikliklerinizi kapsamlı bir şekilde test etmelisiniz.
Değişiklik yaparken birkaç terminal oturumunun açık olması iyi bir fikir olabilir. Bu, gerekirse kendinizi kilitlemeden yapılandırmayı geri almanıza olanak tanır.
Anahtarlarla SSH’ye Nasıl Giriş Yapılır
Parolaları kullanarak uzak bir sistemde oturum açabilmek yararlı 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 çift anahtar oluşturarak çalışır: bir özel anahtar ve bir genel anahtar .
Özel anahtar , istemci makinede bulunur ve güvenlik altına alınır ve gizli tutulur.
Açık anahtar herhangi birine verilebilir veya erişmek istediğiniz herhangi bir sunucuya yerleştirilebilir.
Bir anahtar çifti kullanarak bağlanmaya çalıştığınızda, sunucu, istemci bilgisayar için yalnızca özel anahtarla okunabilen bir mesaj oluşturmak için genel anahtarı kullanır.
İstemci bilgisayar daha sonra uygun yanıtı sunucuya geri gönderir ve sunucu, istemcinin meşru olduğunu bilecektir.
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 makinenizdir.
Komut satırına şunu girin:
ssh-keygen -t rsa
Anahtar dosyalarında bir parola belirlemeniz istenebilir, ancak bu oldukça yaygın olmayan bir uygulamadır ve varsayılanları kabul etmek için istemlerde enter tuşuna basmalısınız. Anahtarlarınız ~/.ssh/id_rsa.pub ve ~/.ssh/id_rsa adresinde oluşturulacaktır .
.ssh
Yazarak dizine geçin :
cd ~/.ssh
Dosyaların izinlerine bakın:
ls -l
Output-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.pub
Gördüğünüz gibi, id_rsa
dosya yalnızca sahibine okunabilir ve yazılabilir. Bu gizli kalmasına yardımcı olur.
Ancak id_rsa.pub
dosya paylaşılabilir ve bu etkinlik için uygun izinlere sahiptir.
Genel Anahtarınızı Sunucuya Nasıl Aktarırsınız
Şu anda bir sunucuya parola tabanlı erişiminiz varsa, şu komutu vererek ortak anahtarınızı sunucuya kopyalayabilirsiniz:
ssh-copy-id remote_host
Bu bir SSH oturumu başlatacaktır. Parolanızı girdikten sonra, ortak anahtarınızı sunucunun yetkili anahtarlar dosyasına kopyalayacak ve bir dahaki sefere parola olmadan oturum açmanıza izin verecektir.
İstemci Tarafı Seçenekleri
SSH üzerinden bağlanırken sağlayabileceğiniz bir dizi isteğe bağlı bayrak vardır.
Bunlardan bazıları, uzak ana bilgisayarın sshd
yapılandırmasındaki ayarları eşleştirmek için gerekli olabilir.
Örneğin, sshd
yapılandırmanızda bağlantı noktası numarasını değiştirdiyseniz, istemci tarafında bu bağlantı noktasını aşağıdakileri yazarak eşleştirmeniz gerekir:
ssh -p port_number remote_host
Not: ssh bağlantı noktanızı değiştirmek, belirsizlik yoluyla güvenlik sağlamanın makul bir yoludur . Normal olarak 22 numaralı bağlantı noktasında yaygın olarak bilinen bir sunucu dağıtımına ssh bağlantılarına izin veriyorsanız ve parola doğrulamayı etkinleştirdiyseniz, büyük olasılıkla birçok otomatik oturum açma girişimi tarafından saldırıya uğrayacaksınız. Yalnızca anahtar tabanlı kimlik doğrulamayı kullanmak ve standart olmayan bir bağlantı noktasında ssh çalıştırmak, uygulayabileceğiniz en karmaşık güvenlik çözümü değildir, ancak bunları en aza indirmelidir.
Uzak bir sistemde yalnızca tek bir komut yürütmek istiyorsanız, bunu ana bilgisayardan sonra şu şekilde belirtebilirsiniz:
ssh remote_host command_to_run
Uzak makineye bağlanacak, kimlik doğrulaması yapacaksınız ve komut yürütülecektir.
Daha önce de söylediğimiz gibi, her iki bilgisayarda da X11 yönlendirme etkinse, bu işleve şunu yazarak erişebilirsiniz:
ssh -X remote_host
Bilgisayarınızda uygun araçlara sahip olmanız koşuluyla, uzak sistemde kullandığınız GUI programları artık yerel sisteminizde pencerelerini açacaktır.
Parola Doğrulamayı Devre Dışı Bırakma
SSH anahtarları oluşturduysanız, yalnızca parola kimlik doğrulamasını devre dışı bırakarak sunucunuzun güvenliğini artırabilirsiniz. Konsol dışında, sunucunuza giriş yapmanın tek yolu, sunucuya kurduğunuz ortak anahtarla eşleşen özel anahtar olacaktır.
Uyarı: Bu adıma geçmeden önce sunucunuza bir genel anahtar yüklediğinizden emin olun. Aksi takdirde, kilitlenirsiniz!
Root veya sudo ayrıcalıklarına sahip kullanıcı olarak yapılandırma sshd
dosyasını açın:
sudo nano /etc/ssh/sshd_config
Okuyan satırı bulun Password Authentication
ve başındaki satırı kaldırarak yorumunu kaldırın #
. Daha sonra değerini şu şekilde değiştirebilirsiniz no
: /etc/ssh/sshd_config
PasswordAuthentication no
Değiştirilmesi gerekmeyen iki ayar daha (bu dosyayı daha önce değiştirmediyseniz) PubkeyAuthentication
ve ChallengeResponseAuthentication
. Varsayılan olarak ayarlanırlar ve aşağıdaki gibi okunmalıdır: /etc/ssh/sshd_config
PubkeyAuthentication yes
ChallengeResponseAuthentication no
Değişikliklerinizi yaptıktan sonra dosyayı kaydedip kapatın.
Artık SSH arka plan programını yeniden yükleyebilirsiniz:
sudo systemctl reload ssh
Parola doğrulama şimdi devre dışı bırakılmalı ve sunucunuza yalnızca SSH anahtar doğrulama yoluyla erişilebilir olmalıdır.