Android

Ssh config dosyasını kullanma

Kabuk Nasıl Çalışır (SSH) - Computerphile

Kabuk Nasıl Çalışır (SSH) - Computerphile

İçindekiler:

Anonim

Bir seçenek, her uzak sunucu bağlantısı için bir bash diğer adı oluşturmak olacaktır. Ancak, bu soruna başka, çok daha iyi ve daha basit bir çözüm var. OpenSSH, bağlandığınız her uzak makine için farklı SSH seçeneklerini saklayabileceğiniz kullanıcı başına bir yapılandırma dosyası kurmanıza olanak tanır.

Bu kılavuz, SSH istemci yapılandırma dosyasının temellerini kapsar ve en yaygın yapılandırma seçeneklerinden bazılarını açıklar.

Ön şartlar

OpenSSH istemcisi kurulu bir Linux veya macOS sistemi kullandığınızı varsayıyoruz.

SSH Yapılandırma Dosyası Konumu

OpenSSH istemci tarafı yapılandırma dosyasına config adı verilir ve kullanıcının ana dizini altındaki .ssh dizininde depolanır.

~/.ssh dizini, kullanıcı ssh komutunu ilk kez çalıştırdığında otomatik olarak oluşturulur. Dizin sisteminizde yoksa, aşağıdaki komutu kullanarak dizini oluşturun:

mkdir -p ~/.ssh && chmod 700 ~/.ssh

Varsayılan olarak SSH yapılandırma dosyası bulunmayabilir, bu nedenle touch komutunu kullanarak oluşturmanız gerekebilir:

touch ~/.ssh/config

Bu dosya yalnızca kullanıcı tarafından okunabilir ve yazılabilir olmalı ve başkaları tarafından erişilemez olmalıdır:

chmod 600 ~/.ssh/config

SSH Yapılandırma Dosyası Yapısı ve Modelleri

SSH Yapılandırma Dosyası aşağıdaki yapıyı alır:

Host hostname1 SSH_OPTION value SSH_OPTION value Host hostname2 SSH_OPTION value Host * SSH_OPTION value

SSH istemci yapılandırma dosyasının içeriği stanzalar (bölümler) halinde düzenlenmiştir. Her stanza Host yönergesi ile başlar ve uzak SSH sunucusuyla bağlantı kurulurken kullanılan belirli SSH seçeneklerini içerir.

Girinti gerekli değildir, ancak dosyanın okunmasını kolaylaştırdığı için önerilir.

Host yönergesi bir desen veya boşlukla ayrılmış bir desen listesi içerebilir. Her desen, sıfır veya daha fazla boşluk olmayan karakter veya aşağıdaki desen belirteçlerinden birini içerebilir:

  • * - Sıfır veya daha fazla karakterle eşleşir. Örneğin, Host * tüm ana bilgisayarlarla, 192.168.0.* 192.168.0.0/24 alt ağındaki ana bilgisayarlarla eşleşir. ? - Tam olarak bir karakterle eşleşir. Kalıp, Host 10.10.0.? 10.10.0. tüm ev sahipleriyle 10.10.0. Aralık. ! - Bir desenin başında kullanıldığında eşleşmeyi reddeder. Örneğin, Host 10.10.0.* !10.10.0.5 , 10.10.0.0/24 alt ağındaki 10.10.0.5 dışındaki tüm ana bilgisayarlarla 10.10.0.5 .

SSH istemcisi, yapılandırma dosyasını stanza ile okur ve birden fazla desen eşleşirse, ilk eşleşen stanzadan seçenekler öncelik kazanır. Bu nedenle, dosyanın başında daha fazla ana bilgisayara özgü bildirimler ve dosyanın sonunda daha genel geçersiz kılmalar verilmelidir.

Terminalinize man ssh_config yazarak veya ssh_config man sayfasını ziyaret ederek mevcut ssh seçeneklerinin tam listesini bulabilirsiniz.

SSH yapılandırma dosyası scp , sftp ve rsync gibi diğer programlar tarafından da okunur.

SSH Yapılandırma Dosyası Örneği

Şimdi SSH yapılandırma dosyasının temelini ele aldığımıza göre, aşağıdaki örneğe bakalım.

Genellikle, uzak bir sunucuya SSH aracılığıyla bağlanırken uzak kullanıcı adını, ana bilgisayar adını ve bağlantı noktasını belirtirsiniz. Örneğin, komut satırından 2322 numaralı bağlantı noktasındaki dev.example.com adlı bir ana bilgisayara john adlı bir kullanıcı olarak oturum açmak için şunu dev.example.com :

ssh [email protected] -p 2322

Sadece ssh dev yazarak yukarıdaki komutta belirtilen seçeneklerin aynısını kullanarak sunucuya bağlanmak için "~/.ssh/config dosyanıza aşağıdaki satırları koyun:

~ /.Ssh / yapılandırma

Host dev HostName dev.example.com User john Port 2322

Şimdi ssh dev yazdığınızda, ssh istemcisi yapılandırma dosyasını okuyacak ve dev ana bilgisayarı için belirtilen bağlantı ayrıntılarını kullanacaktır:

ssh dev

Paylaşılan SSH Yapılandırma Dosyası Örneği

Bu örnek, ana bilgisayar modelleri ve seçenek önceliği hakkında daha ayrıntılı bilgi verir.

Aşağıdaki örnek dosyayı ele alalım:

Host targaryen HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key Host tyrell HostName 192.168.10.20 Host martell HostName 192.168.10.50 Host *ell user oberyn Host * !martell LogLevel INFO Host * User root Compression yes

  • ssh targaryen , ssh istemcisi dosyayı okur ve Host targaryen olan ilk eşlemeden seçenekleri Host targaryen . Daha sonra, bir sonraki stanzaları eşleşen bir desen için tek tek kontrol eder. Bir sonraki eşleme Host * !martell ( martell hariç tüm hostlar anlamına gelir) ve bu martell bağlantı seçeneğini uygulayacaktır. Son tanım Host * da eşleşir, ancak ssh istemcisi yalnızca Compression seçeneğini kullanacaktır, çünkü User seçeneği Host targaryen zaten tanımlanmıştır.

    ssh targaryen kullanılan seçeneklerin tam listesi aşağıdaki gibidir:

    HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key LogLevel INFO Compression yes

    ssh tyrell çalıştırılırken eşleşen ana bilgisayar kalıpları şunlardır: Host tyrell , Host *ell , Host * !martell ve Host * . Bu durumda kullanılan seçenekler şunlardır:

    HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes

    HostName 192.168.10.50 User oberyn Compression yes

    Diğer tüm bağlantılar için, ssh istemcisi Host * !martell ve Host * bölümlerinde belirtilen seçenekleri kullanır.

SSH Yapılandırma Dosyasını Geçersiz Kıl Seçeneği

Ssh istemcisi yapılandırmasını aşağıdaki öncelik sırasıyla okur:

  1. Komut satırından belirtilen seçenekler. ~/.ssh/config .Ssh ~/.ssh/config dosyasında tanımlanan seçenekler. /etc/ssh/ssh_config dosyasında tanımlanan /etc/ssh/ssh_config .

Host dev HostName dev.example.com User john Port 2322

ve john yerine kullanıcı root olarak bağlanmak dışında tüm seçenekleri kullanmak istiyorsanız, komut satırında kullanıcıyı belirtin:

ssh -o "User=root" dev

-F ( configfile ) seçeneği kullanıcı başına alternatif bir yapılandırma dosyası belirlemenizi sağlar.

ssh istemcisine ssh yapılandırma dosyasında belirtilen tüm seçenekleri yok saymasını söylemek için şunu kullanın:

ssh -F /dev/null [email protected]

Sonuç

Size kullanıcı ssh yapılandırma dosyanızı nasıl yapılandıracağınızı gösterdik. Ayrıca, bir SSH anahtar tabanlı kimlik doğrulaması ayarlamak ve bir şifre girmeden Linux sunucularınıza bağlanmak isteyebilirsiniz.

Varsayılan olarak, SSH 22 numaralı bağlantı noktasını dinler. Varsayılan SSH bağlantı noktasını değiştirmek, otomatik saldırı riskini azaltarak sunucunuza fazladan bir güvenlik katmanı ekler.

ssh terminali