Linux

Uzak Sunucuya Bağlanmak için SSH Nasıl Kullanılır

SSH kullanarak uzak bir sisteme bağlanmak için sshkomutu kullanacağız.

sshWindows 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 noaracılığıyla) erişimi olan ve ssh üzerinden oturum açabilen bir kullanıcı hesabı oluşturduğunuzda değiştirilmelidir.susudo

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 , nanotuşuna ve ardından Enter tuşuna basın. Ctrl+XY

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_rsadosya 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 sshdyapılandırmasındaki ayarları eşleştirmek için gerekli olabilir.

Örneğin, sshdyapı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 Authenticationve 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) PubkeyAuthenticationve 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.

Muhammed Kerim Koç

1996 yılında Giresun Şebinkarahisarda dünyaya geldim. İlk ve orta öğretimi Şebinkarahisarda tamamladım. Liseyi Şebinkarahisar Anadolu Teknik ve Endüstri Meslek Lisesinde bitirdim. Üniversite için de Şebinkarahisar Teknik Bilimler Meslek Yüksek Okulunda Bilgisayar programcılığını okudum. Üniversite stajı için gelmiş olduğum özel bir firmada işe başladım. 5,5 yıl bu firmadan çalıştıktan sonra farklı bir sektör olan inşaat sektöründe Bilgi teknolojileri Uzmanı olarak 8 ay çalıştım. Daha sonra özel bir şirkette Sistem Network Sorumlusu olarak 4 ay çalıştıktan sonra proje sonlandırılmasından dolayı işten ayrıldım. Tekrar dan 5.5 yıl çalışmış olduğum firmaya Sistem ve Network Yöneticisi olarak geri döndüm ve çalışmaya başladım. Kendimi geliştirmek için Bilge Adam Akademi den Sistem Uzmanlığı eğitimi aldım. Sanallaştırma ve Ağ tarafında kendimi sürekli olarak geliştiriyorum.

İlgili Makaleler

Başa dön tuşu