Ulaşılamaz bir Linux bilgisayar için SSH'ye mi ihtiyacınız var? Sizi aramasını sağlayın, ardından kendi uzak SSH oturumunuzu almak için bu bağlantıyı kesin. Size nasıl olduğunu gösteriyoruz.
Ters SSH Tünelini Kullanmak İstediğinizde
Bazen uzak bilgisayarlara ulaşmak zor olabilir. Bulundukları sitede sıkı güvenlik duvarı kuralları olabilir veya yerel yönetici karmaşık Ağ Adresi Çevirisi kuralları oluşturmuş olabilir. Bağlanmanız gerekiyorsa böyle bir bilgisayara nasıl ulaşırsınız?
Bazı etiketler oluşturalım. Bilgisayarınız yerel çünkü size yakın. Bağlanacağınız bilgisayar uzak çünkü sizden farklı bir yerde.
Bu makalede kullanılan yerel ve uzak bilgisayarlar arasında ayrım yapmak için, uzak bilgisayara “howtogeek” adı verilir ve Ubuntu Linux (mor terminal pencereli) çalıştırılır. Yerel bilgisayara “Sulaco” denir ve Manjaro Linux çalıştırır (sarı terminal pencereli).
Normalde yerel bilgisayardan bir SSH bağlantısı kurar ve uzak bilgisayara bağlanırsınız. Bu, açıkladığımız ağ senaryosunda bir seçenek değil. Belirli ağ sorununun ne olduğu önemli değil; bu, doğrudan uzaktaki bir bilgisayara SSH yapamadığınızda yararlıdır.
Ancak, ucunuzdaki ağ yapılandırması basitse, uzak bilgisayar size bağlanabilir. Bununla birlikte, bu tek başına ihtiyaçlarınız için yeterli değildir, çünkü uzak bilgisayarda çalışan bir komut satırı oturumu sağlamaz. Ama bu bir başlangıç. İki bilgisayar arasında kurulan bir bağlantınız var.
Cevap, ters SSH tünellemesinde yatmaktadır.
Ters SSH Tüneli Nedir?
Ters SSH tüneli, yerel bilgisayarınızdan uzak bilgisayara yeni bir bağlantı kurmak için kurulan bağlantıyı kullanmanızı sağlar.
Çünkü orijinal bağlantı geldi itibaren uzak bilgisayar için siz, diğer yöne gitmek için onu “tersine” kullanıyorsunuz. SSH güvenli olduğu için mevcut güvenli bir bağlantının içine güvenli bir bağlantı kuruyorsunuz. Bu, uzak bilgisayarla bağlantınızın orijinal bağlantının içinde özel bir tünel görevi yaptığı anlamına gelir.
Ve böylece “ters SSH tüneli” ismine ulaşıyoruz.
O nasıl çalışır?
Ters SSH tüneli, yerel bilgisayardan yeni bağlantı isteklerini dinlemek için kurulan bağlantıyı kullanarak uzak bilgisayara dayanır.
Uzak bilgisayar, yerel bilgisayardaki bir ağ bağlantı noktasını dinler. Bu bağlantı noktasına bir SSH isteği algılarsa, bu bağlantı isteğini kurulan bağlantıdan aşağıya iletir. Bu yeni bir bağlantı sağlar itibaren yerel bilgisayar için uzaktaki bilgisayar.
Kurulumu açıklamaktan daha kolaydır.
SSH Ters Tünel Oluşturma Kullanma
SSH zaten Linux bilgisayarınıza yüklenecek, ancak yerel bilgisayar daha önce hiç SSH bağlantısını kabul etmediyse SSH arka plan programını (sshd) başlatmanız gerekebilir.
sudo systemctl start sshd
Bilgisayarınızı her yeniden başlattığınızda SSH arka plan programının başlatılması için şu komutu kullanın:
sudo systemctl enable sshd
Uzak bilgisayarda aşağıdaki komutu kullanıyoruz.
-
-R
(ters) seçeneği söylerssh
uzak bilgisayarda yeni SSH oturumları oluşturulması gerekir. - “43022: localhost: 22” anlatıyor
ssh
yerel bilgisayardaki 43022 numaralı bağlantı noktasına yapılan bağlantı istekleri, uzak bilgisayardaki 22 numaralı bağlantı noktasına iletilmelidir. 43022 numaralı bağlantı noktası, ayrılmamış olarak listelendiği için seçildi. Özel bir sayı değil. - dave@sulaco.local, uzak bilgisayarın yerel bilgisayarda bağlanacağı kullanıcı hesabıdır.
ssh -R 43022:localhost:22 dave@sulaco.local
Daha önce yerel bilgisayara hiç bağlanmadığınız konusunda bir uyarı alabilirsiniz. Veya bağlantı ayrıntıları tanınan SSH ana bilgisayarları listesine eklendiğinden bir uyarı görebilirsiniz. Gördüğünüz şey (herhangi bir şey varsa) uzak bilgisayardan yerel bilgisayara bağlantı yapılmış olup olmadığına bağlıdır.
Yerel bilgisayara bağlanmak için kullandığınız hesabın parolasını girmeniz istenir.
Bağlantı yapıldığında komut isteminin dave @ howtogeek yerine dave @ sulaco olarak değiştiğini unutmayın.
Artık uzaktaki bilgisayardan yerel bilgisayara bağlıyız. Bu, ona komutlar verebileceğimiz anlamına gelir. Hadi kullanalım who
yerel bilgisayardaki oturum açma bilgilerini görebilirsiniz.
who
Dave adlı kullanıcı hesabına sahip kişinin yerel bilgisayara giriş yaptığını ve uzak bilgisayarın (aynı kullanıcı kimlik bilgilerini kullanarak) 192.168.4.25 IP adresinden bağlandığını görebiliriz.
İLİŞKİLİ: Linux'ta Geçerli Kullanıcı Hesabı Nasıl Belirlenir
Uzak Bilgisayara Bağlanma
Uzak bilgisayardan bağlantı başarılı olduğundan ve bağlantıları dinlediğinden, uzaktaki bilgisayara yerel ağdan bağlanmayı deneyebiliriz.
Uzak bilgisayar yerel bilgisayardaki 43022 numaralı bağlantı noktasını dinliyor. Yani – biraz sezgisel olarak – uzak bilgisayarla bağlantı kurmak için, ssh
Yerel bilgisayarla bağlantı kurmak için 43022 numaralı bağlantı noktasında. Bu bağlantı isteği uzak bilgisayara iletilir.
ssh localhost -p 43022
Kullanıcı hesabı parolasını girmemiz istenir, ardından yerel bilgisayardan uzak bilgisayara bağlanır. Manjaro bilgisayarımız mutlulukla “Ubuntu 18.04.2 LTS'ye Hoş Geldiniz” diyor.
Komut isteminin dave @ sulaco yerine dave @ howtogeek olarak değiştiğini unutmayın. Ulaşılması zor uzak bilgisayarımıza SSH bağlantısı kurma hedefimize ulaştık.
SSH'yi Anahtarlarla Kullanma
Uzak bilgisayardan yerel bilgisayara bağlanmayı daha kolay hale getirmek için SSH anahtarlarını ayarlayabiliriz.
Uzak bilgisayarda şu komutu yazın:
ssh-keygen
Sizden bir parola istenir. Parola sorularını yok saymak için Enter tuşuna basabilirsiniz, ancak bu önerilmez. Bu, uzak bilgisayardaki herkesin parola sorulmadan yerel bilgisayarınıza SSH bağlantısı kurabileceği anlamına gelir.
Sembollerle ayrılmış üç veya dört kelime sağlam bir parola oluşturur.
SSH anahtarlarınız oluşturulur.
Ortak anahtarı yerel bilgisayara aktarmamız gerekiyor. Bu komutu kullanın:
ssh-copy-id dave@sulaco.local
Oturum açtığınız kullanıcı hesabının şifresini girmeniz istenir, bu durumda dave@sulaco.local.
Uzak bilgisayardan yerel bilgisayara ilk bağlantı isteği yaptığınızda, parolayı girmeniz gerekir. Terminal penceresi açık kaldığı sürece, gelecekteki bağlantı istekleri için tekrar girmeniz gerekmeyecektir.
İLİŞKİLİ: Linux Kabuğundan SSH Anahtarları Oluşturma ve Yükleme
Tüm Tüneller Korkunç Değil
Bazı tüneller karanlık ve kıvrımlı olabilir, ancak uzak bilgisayar ile yerel bilgisayar arasındaki ilişkiyi doğrudan kafanızda tutabiliyorsanız, ters SSH tünelinde gezinmek çok zor değildir. Sonra ters çevirin.