Özet
Bu makalemizde SSH nedir, nasıl çalışır sorularına cevap bulup, Ubuntu Server ve Windows üzerinde OpenSSH kullanarak basit bir deneme gerçekleştireceğiz.
İçindekiler
SSH Nedir?
SSH Nasıl Çalışır?
Ubuntu ve OpenSSH
Hyper-V’ye Ubuntu Server Kurulumu
OpenSSH Client Kurulumu
Ubuntu Server SSH-KEY oluşturma ve Adımları
SSH Nedir?
Secure Shell’in kısaltmasıdır ve kullanıcıların sunucularını internet üzerinden kontrol edebilmelerini sağlayan bir güvenlik protokolüdür. Bir SSH istemcisini bir SSH sunucusuna bağlayarak güvenli olmayan bir ağ üzerinde güvenli bir kanal oluşturur. Telnet gibi şifrelenmemiş protokollerin yerini almak için tasarlanmıştır.
SSH Nasıl Çalışır?
Uzak bilgisayarın kimliğini doğrulamak için açık anahtarlı şifreleme kullanır. Ayrıca kullanıcının kimliğini doğrulamasına da izin verir. SSH’yi kullanmanın birkaç yolu vardır. Bir tanesi, bir ağ bağlantısını şifrelemek için otomatik olarak oluşturulan özel-genel anahtar çiftlerini kullanmak ve sonra oturum açmak için parola kimlik doğrulaması kullanmaktır. Bir diğeri, kimlik doğrulama işlemini gerçekleştirmek için, el ile oluşturulmuş bir ortak-özel anahtar çifti kullanmaktır.
Basitçe anlatmak gerekirse şöyle diyebiliriz; Bilgisayarım ile sunucu arasında güvenli bir bağlantı kurmak istiyorum. Bunun için bilgisayarımda bir SSH istemcisi ve sunucuda bir SSH sunucusu olması gerekir. İstemci ve sunucu arasında bir anahtar değişimi yaparak birbirlerinin kimliğini doğrularlar. Sonra istemci sunucuya parola veya özel anahtar ile giriş yapar. Böylece bilgisayarım ile sunucu arasında şifreli bir kanal açılır ve uzaktan komut satırı girişi veya başka ağ hizmetleri kullanabilirim.
Ubuntu ve OpenSSH
SSH’nin tanımını ve çalışma şeklini sizlerle paylaştım. Şimdi Ubuntu kurulu bir makineye SSH bağlantısı nasıl yapılır, bir örnek üzerinden göstermek istiyorum.
Hyper-V’ye Ubuntu Server Kurulumu
Öncelikle Ubuntu Server kurulu bir makineye ihtiyacımız var. Eğer bunu sanal olarak yapmak istiyorsanız, şu videodaki adımları izleyerek Ubuntu Server’ı Hyper-V’ye nasıl kuracağınızı öğrenebilirsiniz: https://www.youtube.com/watch?v=_g-TdzpgNiY
Kurarken OpenSSH’ı seçmeyi unutmayalım.
OpenSSH Client Kurulumu
OpenSSH sunucusuna bağlanmak için bir istemciye ihtiyacımız var. Bağlantı için PuTTY ve OpenSSH kullanacağız. OpenSSH için öncelikle Windows ayarlarında isteğe bağlı özellikler bölümünde yüklü olanlar arasında OpenSSH istemcisinin olup olmadığını kontrol edelim. Eğer yoksa görselde kırmızıyla işaretlediğim yere tıklayarak OpenSSH istemcisini bulup yükleyelim.
OpenSSH istemcisi:
Ubuntu Server SSH-KEY oluşturma
Adım-1:
Ubuntu sunucunuza kullanıcı adınız ve şifrenizle giriş yaptıktan sonra, Görselde görüldüğü gibi “ssh-keygen” komutunu giriyoruz. Bu komutu çalıştırdıktan sonra Görselde gösterildiği gibi oluşturulan anahtarı görebilirsiniz.
Key oluşturma: Key :
Adım-2:
IP adresimizi öğrenmek için “ip a” komutunu giriyoruz. Görselde de görüldüğü gibi IP adresimiz tam olarak orada.
IP Adresimiz :
Adım-3:
Bu adımda, sunucumuza şifresiz bir şekilde bağlanmak için anahtarımızı “ssh-copy-id” komutu ile kopyalıyoruz. görselde görüldüğü gibi “ssh-copy-id” komutundan sonra “kullaniciadi@ipadres” şeklinde bir ekleme yapıyoruz. Ardından görselde gösterildiği gibi “Number of key(s) added: 1” çıktısı alırsak, anahtarın eklenmiş olduğunu anlarız.
Key Ekleme komutu:
Keyimiz Eklendi:
Adım-4:
Şimdi, bu şifresiz giriş için config dosyamızda bir değişiklik yapmamız gerekiyor. Bu değişikliği “sudo nano /etc/ssh/sshd_config” komutu ile yapıyoruz. Bu komut config dosyasını açarak değişiklik yapmamızı sağlıyor. Görselde görülen satıra(“PasswordAuthentication yes” satırına) kadar ok tuşlarıyla inip “#” karakterini silerek o satırın yorum satırı olmasını engelliyoruz. Sonunda “yes” yazan ifadeyi “no” olarak değiştiriyoruz. Böylece görselimizdeki hale geliyor. Ctrl+X tuşlarına basarak çıkış yapıyoruz. Y tuşuna basarak da değişikliği kaydediyoruz. En son görseldeki gibi “sudo restart systemctl ssh” komutunu yazarak ssh hizmetini yeniden başlatıyoruz.
Config Dosyası Düzenleme:
Config Dosyamız: Değiştirilen Config:
SSH Yeniden Başlatma:
OpenSSH istemcisi ile sunucuya bağlanma
OpenSSH kullanarak Ubuntu’daki sunucumuza bağlanalım. Öncelikle, Windows Powershell’i açarak görselde de görüldüğü üzere “ssh kullaniciadi@ipadres” yazarak komutu çalıştıralım. Ardından şifremizi girelim. Bunu yaparak sunucumuza bağlantımızı sağlamış olduk. Görselde de görüldüğü üzere sunucu da dosya oluşturup erişimimizi kontrol ettik.
PuTTY ile sunucuya bağlanma
Adım-1:
Şimdi de alternatif olarak Putty ile bağlanmayı görelim. Öncelikle Putty Configuration sayfasında sunucumuzun ip adresini girip, ssh’ı seçerek sunucumuza bağlanıyoruz. Eğer bu makinede ilk bağlantımızsa .ssh klasörümüze eklemek için bir fingerprint gösterecek ve izin isteyecektir.
PuTTY Ana Ekranı:
Adım-2:
Adım-1’de yaptığımız işlemden sonra karşımıza çıkan komut ekranında hangi kullanıcı adıyla giriş yapmak istediğimiz soruluyor. OpenSSH’ta yaptığımız gibi burda da “etik” kullanıcı adımızı ve sonrasında da şifremizi yazarak sunucumuza bağlantımızı sağlıyoruz.
Kullanıcı Adı Girişi: Şifre Girişi:
Adım-3:
Şimdi de sunucumuzdaki klasör listesine bakalım ve daha önce OpenSSH ile oluşturduğumuz klasörümüzün burda olduğunu görelim. “ls” komutuyla yine klasörleri listeledik ve klasörümüz oluşturduğumuz şekliyle karşımızda.
KAYNAKÇA
Wikipedia. (2023, Haziran). Secure Shell. WIKIPEDIA: https://en.wikipedia.org/wiki/Secure_Shell adresinden alındı.
Kapak Görsel: https://pixabay.com/ adresinden 06.06.2023 tarihinde alınmıştır. Creative Commons lisanslıdır.
Bu makale smallseotools sitesi üzerinden 06.06.2023 tarihinde kontrol edilmiştir. Makale, benzerlik değeri ile kabul edilmiştir. Plagiarism: %7 Unique: %93
Bu eser Creative Commons Atıf 4.0 Uluslararası Lisansı ile lisanslanmıştır.
Kocaeli Üniversitesi Bilgisayar Mühendisliği bölümünden Marmara Üniversitesi Bilgisayar ve Öğretim Teknolojileri Eğitimi 2019’da yatay geçiş yaptım. 2021 Yaz Döneminde derslere girmeye başladım. Şimdi ise Bilgisayar ve Öğretim Teknolojileri Eğitimi 3. sınıf öğrencisiyim. Orta düzeyde C#, Python biliyorum. C# dilini Unity ile öğrenmeye başladım. Unity ile yapmış olduğum oyunlar var ve hala üzerinde çalışmaya devam ettiğim oyunlarda var. Multiplayer oyun yapmak için öğrenmiş olduğum Nodejs, socket io kütüphanesi sayesinde mobil uygulama yapmak içinde nodejs i kullanabileceğimi gördüm. Şuan mobil uygulama yapmak için Nodejs ve React Native de kendimi geliştirmeye çalışıyorum. Uygulama için NoSql bir veritabanı kullanmak istediğim için Nedb,LevelDb vs gibi veritabanlarını temel seviyede öğrenip daha rahat olabileceğini düşünüp MongoDB öğrenmeye başladım. Şuan veritabanı schema ları için mongoose kütüphanesini kullanıyorum. React Native ile bir proje yaptıktan sonra tekrar oyun yapmaya dönücem. Bu sefer Unity değil de Unreal Engine kullanmayı istiyorum. Eğer Unity den daha çok seversem Unity de olan yarım kalmış projeleri orda devam ettiricem. C# dilinden C++ a geçirmem gerekicek kodları ama kullanımı sevdiğim oyun motorunda devam etmek daha çok motive eder diye düşünüyorum. Oyuna dönme nedenim uygulama yaparken motive edici şeylerin çok az olması. Yaptığınız şeyin geri bildirimi oyunlarda daha fazla. Geri bildirim almakta insanı en fazla motive eden şeylerden biri diye düşünüyorum. Yakın gelecekte CSS ile 3D tasarım yapılabilecek ve başka 3D tasarım yapılabilen (Blender,Maya.. vb.) uygulamalardaki modelleri CSS e çevirebilecek bir editor geliştirmeyi düşünüyorum.