ssh HostName ip bulmak için nasıl


10

HostNameKomut satırında bir ssh yapılandırmasından a'nın IP'sini almanın basit bir yolu var mı ? Çoğu zaman kullanmak zorundayım scpve bir makineye bağlanmak istiyorum, ama sadece HostName'i hatırlıyorum.


1
scp .ssh/configve okuyacak /etc/ssh/ssh_config. yapılandırmada tanımlanan takma adlarla scp yapamamanızın bir nedeni var mı?
Tim Kennedy

Bunu bir cevap olarak eklemelisiniz. Ben ilk denediğimde, anahtar ya da bir şey vermedi düşünüyorum, bu yüzden ev sahibi tanımadı.
m33lky

Bir cevap için biraz ışık gibi görünüyordu, ama ekledim. birlikte okuma ile ilgili bazı ilginç ssh yapılandırma olarak düşünün.
Tim Kennedy

Yanıtlar:


2

scp ~/.ssh/configve okuyacak /etc/ssh/ssh_config. ssh yapılandırmanızdaki ana bilgisayar diğer adlarından birine / adından scp yaptığınız sürece, çalışması gerekir.

Bu bir cevap olmak için biraz kısa gibi göründüğünden, ssh config ile yapabileceğiniz şeylerle ilgili daha fazla bilgi ...

İşte ssh config dosyasının bazı gelişmiş özelliklerini açıklayan bir yazı: http://magazine.redhat.com/2007/11/27/advanced-ssh-configuration-and-tunneling-we-dont-need-no- kokuşmuş-vpn-yazılım /

Http proxy üzerinden ssh / scp tüneline mi ihtiyacınız var? sorun değil, sadece burada özetlenen adımları kullanın: http://www.mtu.net/~engstrom/ssh-proxy.php

ProxyCommand seçeneğinin başka bir kullanımı: http://jasonmc.wordpress.com/2008/04/16/ssh-magic/


1
Kısa cevaplar harika. Aksi takdirde konu dışına çıkmak kolaydır. Tünel açma yapan herkes sshuttle'a bakmalıdır .
m33lky

9

Dan eşleştirmek için hostssh_config için komut satırında verilen argüman hostnamekolay kullanıyor girişi sshkendisini.

Gerçekte bağlanmadan bir komut satırı yapılandırması için ne kullanacağını değerlendirip yazdırmasını isteyebilirsiniz. Daha sonra listelediklerini çıkarmanız gerekir hostname(Yapılandırma anahtarı adlarını küçük harfe dönüştürerek kanonikleştirdiğini unutmayın). Basit bir örnek:

ssh -G database | awk '/^hostname / { print $2 }'

.Ssh / config aşağıdakileri içeriyorsa:

Host database
Hostname database.example.com

Bu yazdırılacaktır database.example.com.

Ping atmak için, elbette çıktıyı değerlendirebilir ve bir argüman olarak kullanabilirsiniz:

ping $(ssh -G database | awk '/^hostname / { print $2 }')

2
Işte bunlar. mükemmel cevap!
heisian


1

Genellikle yapabilir host HostNameve IP adresini alırsınız.

Yüklü hostdeğilse (olması gerekir), nslookup HostName 8.8.8.8aramayı yapmak için Google DNS sunucularını kullanacak olanı kullanabilirsiniz.

Bunları yapmak için, ya makinenizin çözümleyicisinin doğru bir yapılandırmaya (/etc/resolv.conf ve belki /etc/nsswitch.conf dosyasında) sahip olması veya " domaiin ve "TLD" (.org, .com, .net bu tür bir sonek).


3
Bu, ~/.ssh/configbu sorunun amacı olduğunu anladığım ana bilgisayar takma adları aramıyor .
Gilles 'SO- kötü olmayı bırak

Haha, ben de fark ettim. ssh's HostName, bir etki alanı adı değil, rastgele bir takma addır.
m33lky

Yorumlar uzun tartışmalar için değildir; bu görüşme sohbete taşındı .
terdon

0

sahte bir ProxyCommand kullanın ...

$ ssh -o 'ProxyCommand echo %h>&2' mYaLiAs 2>&1 | fgrep -v ssh_exchange_id |  read actual
$ echo $actual
192.168.1.234
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.