SSH Config içindeki Host ve HostName arasındaki fark nedir?


23

Man sayfası şunu söylüyor:

evsahibi

Ana Bilgisayar Aşağıdaki bildirimlerin (bir sonraki Ana Bilgisayar anahtar kelimesine kadar) yalnızca anahtar kelimeden sonra verilen kalıplardan biriyle eşleşen ana bilgisayarlarla sınırlı olmasını sağlar. Birden fazla desen sağlanırsa, boşluklarla ayrılmalıdır. Bir desen olarak tek bir * * tüm ana bilgisayarlar için genel varsayılanlar sağlamak için kullanılabilir. Ana bilgisayar, komut satırında verilen ana bilgisayar adı bağımsız değişkenidir (yani ad, eşleştirmeden önce standartlaştırılmış bir ana bilgisayar adına dönüştürülmez).

Örüntü girişi bir ünlem işaretiyle (`!!) Ön ek eklenerek reddedilebilir. Reddedilen bir giriş eşleştirilirse, satırdaki diğer kalıpların eşleşip eşleşmediğine bakılmaksızın Host girişi yok sayılır. Negatif eşleşmeler bu nedenle joker karakter eşleşmeleri için istisnalar sağlamak açısından yararlıdır.

Desenler hakkında daha fazla bilgi için PATTERNS bölümüne bakın.

AnaMakineAdı

Ana BilgisayarAdı Oturum açılacak gerçek ana bilgisayar adını belirtir. Bu, ana bilgisayarların takma adlarını veya kısaltmalarını belirtmek için kullanılabilir. Ana bilgisayar adı `% h 'karakter dizisini içeriyorsa, bu komut satırında belirtilen ana bilgisayar adıyla değiştirilir (bu, nitelenmemiş adları işlemek için yararlıdır). Varsayılan, komut satırında verilen addır. Sayısal IP adreslerine de izin verilir (hem komut satırında hem de Ana BilgisayarAdı teknik özelliklerinde).

Örneğin, GitHub için bir SSH Yapılandırma oluşturmak istediğimde, Host ve HostName sırasıyla ne olmalıdır?


3
Özünde: SSH'yi çağırırken Hostkullanıcının CLI'ya girdi olarak verdiği dizedir ; HostNameSSH istemci irade olduğunu dize çıkış ağ üzerinden sunucuya bağlanmaya çalışılırken.
sampablokuper

Yanıtlar:


15

Github.com için ~/.ssh/configşöyle görünebilirsiniz

Host github.com
    IdentityFile ~/.ssh/key_name_for_github

Ana bilgisayar adı için: insanın dediği gibi, ana bilgisayar için kısaltma belirtmenize izin verir. Örneğin, eğer ~/.ssh/configböyle görünüyorsanız

Host host1
    HostName host1.example.com
Host host2
    HostName anotherdomain.com

Sonra yazdığınızda

  • ssh host1aslında host1.example.com sitesine giriş yaparsınız
  • ssh host2anotherdomain.com'a giriş yapın

İkinci ~/.ssh/configörneğinizde 'Host' yerine 'Hostname' demek istediğinizi tahmin ediyorum.
Dave

6

Basit kullanımda:

Host gerçek ana bilgisayar adıdır ve hayır HostName

VEYA

Hostana bilgisayarın takma adıdır HostNameve gerçek ana bilgisayar adıdır.

Basit örnek:

$ cat ~/.ssh/config
Host dev
    Hostname <hostname>
    User <username>
    IdentityFile <path_to_private_key>

$ ssh dev
# Equivalent to "ssh -i <path_to_private_key> <username>@<hostname>"

Not: Man sayfası teknik olarak doğrudur, sadece garip bir şekilde ifade edilmiştir. Anlaşılır olması için birkaç kelime daha ekleyeceğim:HostName Specifies the real host name to log into. This can be used *TOGETHER WITH 'HOST'* to specify nicknames or abbreviations for hosts.


1

Son zamanlarda host ve hostname ile bir şeyler yapmak istedim, ancak tam sözdizimini unuttum ... ama bu konuda googling bir karmaşa ve adam sayfası çok yardımcı olmadı. Yani, aynı ihtiyacı olan başkaları varsayarsak, işte benim çerezlerim.

Ana makine komut satırı bağımsız değişkenini belirtir ve a) gerçek ana bilgisayar adı / IP, b) steno, c) takma ad olarak düşünülebilir. Ana Bilgisayar Adı, bağlandığınız makinenin gerçek ana bilgisayar adı / IP'sidir. Ana MakineAdı alanında, komut satırında belirttiğiniz ana bilgisayar adı dizesi olarak% h kullanabilirsiniz. (Bu benim örneğimde kullanmak istediğim kısımdı.)

Diyelim ki, hostname benim-proj-host -... ile başlıyor ve hepsi .my.proj.domain.com etki alanında bulunuyor ve belirli ssh anahtarını kullanarak oturum açmam gerekiyor. my-proj-id-rsa ve özel kullanıcı kimliği my-proj-user. Hayatımı kolaylaştırmak için ~ / .ssh / config dosyasına aşağıdakileri eklerdim

Ana makinem projektörüm *

Ana BilgisayarAdı% h.my.proj.domain.com

Kullanıcı benim projem kullanıcısı

IdentityFile ~ / .ssh / my-proj-id-rsa

Şimdi yazabilirim

ssh benim projeksiyon-host-1234

Yapılandırma olmasaydı,

ssh -i ~ / .ssh / projem-id-rsa my-proj-user@my-proj-host-1234.my.proj.alanim.com

biraz yazarak (ve yazım hataları) kaydeder.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.