Uzaktan Erişimi Basitleştirmek için Özel SSH Bağlantıları Nasıl Yapılandırılır


SSH (SSH istemcisi), bir makineye uzaktan erişmeye yönelik bir programdır; kullanıcının uzak bir ana bilgisayarda komutları yürütmesine olanak tanır. Güvenli olmayan bir ağ üzerinden güvenilmeyen iki ana bilgisayar arasında güvenli şifreli iletişim sağlamak üzere tasarlandığından uzak bir ana bilgisayarda oturum açmak için en çok önerilen yöntemlerden biridir.

SSH hem sistem çapında hem de kullanıcıya özel (özel) bir yapılandırma dosyası kullanır. Bu eğitimde, özel bir ssh yapılandırma dosyasının nasıl oluşturulacağını ve uzak ana bilgisayarlara bağlanmak için belirli seçeneklerin nasıl kullanılacağını açıklayacağız.

Gereksinimler:

  1. Linux masaüstünüze OpenSSH istemcisini kurmuş olmalısınız.
  2. Ssh aracılığıyla uzak bağlantılar için kullanılan ortak seçenekleri anlayın.

SSH İstemci Yapılandırma Dosyaları

Aşağıda ssh istemci yapılandırma dosyalarının konumları verilmiştir:

  1. /etc/ssh/ssh_config – bu, sistem genelindeki varsayılan yapılandırma dosyasıdır. Ssh istemci makinesinin tüm kullanıcıları için geçerli olan ayarları içerir.
  2. ~/.ssh/config veya $HOME/.ssh/config – kullanıcıya özel/özel yapılandırma dosyasıdır. Belirli bir kullanıcıya uygulanan yapılandırmalara sahiptir. Bu nedenle sistem genelindeki yapılandırma dosyasındaki varsayılan ayarları geçersiz kılar. Bu oluşturacağımız ve kullanacağımız dosyadır.

Varsayılan olarak, kullanıcıların kimlikleri ssh'de parolalar kullanılarak doğrulanır, ancak ssh keygen'i kullanarak ssh parolasız oturum açmayı 5 basit adımda ayarlayabilirsiniz.

Not: Masaüstü sisteminizde ~/.ssh dizininin bulunmaması durumunda, onu aşağıdaki izinlerle oluşturun.


mkdir -p ~/.ssh
chmod 0700 ~/.ssh   

Yukarıdaki chmod komutu, ssh ayarlarının gerektirdiği şekilde dizinde yalnızca kullanıcının okuma, yazma ve yürütme izinlerine sahip olabileceği anlamına gelir.

Kullanıcıya Özel SSH Yapılandırma Dosyası Nasıl Oluşturulur

Bu dosya genellikle varsayılan olarak oluşturulmaz, dolayısıyla onu yalnızca kullanıcının okuma/yazma izinleriyle oluşturmanız gerekir.


touch ~/.ssh/config
chmod 0700 ~/.ssh/config

Yukarıdaki dosya ana bilgisayar spesifikasyonları tarafından tanımlanan bölümleri içerir ve bir bölüm yalnızca spesifikasyonda belirlenen kalıplardan biriyle eşleşen ana bilgisayarlara uygulanır.

~/.ssh/config'in geleneksel formatı aşağıdaki gibidir ve tüm boş satırların yanı sıra '#' ile başlayan satırlar da yorum olarak kabul edilir:


Host    host1
	ssh_option1=value1
	ssh_option2=value1 value2
	ssh_option3=value1 

Host    host2
	ssh_option1=value1
	ssh_option2=value1 value2

Host  *
	ssh_option1=value1
	ssh_option2=value1 value2

Yukarıdaki formattan:

  1. Ana makine1Ana makine1 için bir başlık tanımıdır; burası, ana makine spesifikasyonunun başladığı ve bir sonraki başlık tanımı olan Ana makine2'nin oluşturulmasıyla bittiği yerdir. bir bölüm.
  2. Ana Bilgisayar1, Ana Bilgisayar2 yalnızca komut satırında kullanılacak ana bilgisayar takma adlarıdır; uzak ana bilgisayarların gerçek ana bilgisayar adları değildirler.
  3. ssh_option1=value1, ssh_option2=value1 value2 gibi yapılandırma seçenekleri eşleşen bir ana makineye uygulanır ve iyi organize edilmiş biçimlendirme için girintili olmalıdır.
  4. ssh_option2=value1 value2 gibi bir seçenek için önce value1 değeri, ardından value2 değeri dikkate alınır.
  5. Ana Bilgisayar * başlık tanımı (burada * bir kalıptır - sıfır veya daha fazla karakterle eşleşen joker karakter) sıfır veya daha fazla ana makineyle eşleşir.

Yine de yukarıdaki format göz önüne alındığında, ssh yapılandırma dosyasını bu şekilde okur. Host1'e uzaktan erişmek için şu şekilde bir ssh komutu çalıştırırsanız:


ssh host1

Yukarıdaki ssh komutu aşağıdakileri yapacaktır:

  1. yapılandırma dosyasındaki host1 ana bilgisayar takma adıyla eşleşir ve Host host1 tanım başlığı altında ayarlanan seçenekleri uygular.
  2. daha sonra bir sonraki ana bilgisayar bölümü olan Ana Bilgisayar Ana Bilgisayar2'ye geçer ve komut satırında sağlanan adın eşleşmediğini görür, dolayısıyla buradan hiçbir seçenek kullanılmaz.
  3. Tüm ana bilgisayarlarla eşleşen son bölüm olan Ana Bilgisayar *'a geçer. Burada bu bölümdeki tüm seçenekleri ana bilgisayar bağlantısına uygular. Ancak önceki bölümde/bölümlerde zaten kullanılmış olan seçeneklerin herhangi bir değerini geçersiz kılamaz.
  4. Aynı durum ana bilgisayar2 için de geçerlidir.

Kullanıcıya Özel SSH Yapılandırma Dosyası Nasıl Kullanılır

Ssh client config dosyasının nasıl çalıştığını anladıktan sonra aşağıdaki gibi oluşturabilirsiniz. Sunucu ortamınıza uygun seçenekleri ve değerleri (ana bilgisayar takma adları, bağlantı noktası numaraları, kullanıcı adları vb.) kullanmayı unutmayın.

Yapılandırma dosyasını favori düzenleyicinizle açın:


vi ~/.ssh/config

Ve gerekli bölümleri tanımlayın:


Host fedora25
        HostName 192.168.56.15
        Port 22
        ForwardX11 no

Host centos7
        HostName 192.168.56.10
        Port 22
        ForwardX11 no

Host ubuntu
        HostName 192.168.56.5
        Port 2222
        ForwardX11 yes

Host *
        User tecmint
        IdentityFile ~/.ssh/id_rsa
        Protocol 2
        Compression yes
        ServerAliveInterval 60
        ServerAliveCountMax 20
        LogLevel INFO

Yukarıdaki ssh yapılandırma seçeneklerinin ayrıntılı açıklaması.

  1. Ana BilgisayarAdı – oturum açılacak gerçek ana bilgisayar adını tanımlar; alternatif olarak sayısal bir IP adresi kullanabilirsiniz; buna da izin verilir (hem komut satırında hem de Ana BilgisayarAdı spesifikasyonlarında) .
  2. Kullanıcı – oturum açılacak kullanıcıyı belirtir.
  3. Bağlantı Noktası – uzak ana makineye bağlanmak için bağlantı noktası numarasını ayarlar; varsayılan 22'dir. Uzak ana bilgisayarın sshd yapılandırma dosyasında yapılandırılan bağlantı noktası numarasını kullanın.
  4. Protokol – bu seçenek, tercih sırasına göre ssh'nin desteklemesi gereken protokol sürümlerini tanımlar. Genel değerler '1' ve '2''dir; birden fazla sürüm virgülle ayrılmalıdır.
  5. KimlikDosyası – kullanıcının DSA, Ed25519, RSA veya ECDSA kimlik doğrulama kimliğinin okunduğu dosyayı belirtir.
  6. ForwardX11 – X11 bağlantılarının güvenli kanal ve EKRAN seti üzerinden otomatik olarak yönlendirilip yönlendirilmeyeceğini tanımlar. İki olası değeri vardır: “evet” veya “hayır”.
  7. Sıkıştırma“evet” değeriyle uzak bağlantı sırasında sıkıştırmayı ayarlamak için kullanılır. Varsayılan “hayır”'dır.
  8. ServerAliveInterval – saniye cinsinden bir zaman aşımı aralığı ayarlar; bu süre sonunda sunucudan herhangi bir yanıt (veya veri) alınmazsa ssh, sunucudan yanıt istemek için şifrelenmiş kanal üzerinden bir mesaj gönderir. Varsayılan değer 0'dır, yani sunucuya hiçbir mesaj gönderilmez veya BatchMode seçeneği tanımlanmışsa 300'dür.
  9. ServerAliveCountMax – ssh sunucudan herhangi bir yanıt almadan gönderilebilecek sunucu canlı mesajlarının sayısını ayarlar.
  10. LogLevel – ssh'den gelen mesajları günlüğe kaydederken kullanılan ayrıntı düzeyini tanımlar. İzin verilen değerler şunları içerir: SESSİZ, ÖLÜMCÜL, HATA, BİLGİ, AYRINTILI, DEBUG, DEBUG1, DEBUG2 ve DEBUG3. Ve varsayılan INFO'dur.

Yukarıdaki yapılandırma dosyasının ikinci bölümünde tanımlanan herhangi bir uzak Linux ana bilgisayarına (benim durumumda CentOS 7) bağlanmanın standart yolu, normalde aşağıdaki komutu yazardık:


ssh -i ~/.ssh/id_rsa -p 22 [email 

Ancak ssh istemci yapılandırma dosyasını kullanarak aşağıdaki komutu yazmamız yeterlidir:


ssh centos7 

Daha fazla seçeneği ve kullanım örneğini ssh client config kılavuz sayfasında bulabilirsiniz:


$man ssh_config

Şimdilik bu kadar, bu kılavuzda size Linux'ta kullanıcıya özel (özel) ssh client yapılandırma dosyasının nasıl kullanılacağını anlattık. Bu makaleyle ilgili olarak bize geri bildirimde bulunmak için aşağıdaki geri bildirim formunu kullanın.