HostName
Komut 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 scp
ve bir makineye bağlanmak istiyorum, ama sadece HostName'i hatırlıyorum.
HostName
Komut 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 scp
ve bir makineye bağlanmak istiyorum, ama sadece HostName'i hatırlıyorum.
Yanıtlar:
scp ~/.ssh/config
ve 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/
Dan eşleştirmek için host
ssh_config için komut satırında verilen argüman hostname
kolay kullanıyor girişi ssh
kendisini.
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 }')
Bunu yapmaya gerek yokscp
, ancak ssh
hata ayıklama izlerini kullanabilirsiniz.
ssh -v HostName ' ' 2>&1 | grep '^debug1: Connecting to'
Genellikle yapabilir host HostName
ve IP adresini alırsınız.
Yüklü host
değilse (olması gerekir), nslookup HostName 8.8.8.8
aramayı 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).
~/.ssh/config
bu sorunun amacı olduğunu anladığım ana bilgisayar takma adları aramıyor .
HostName
, bir etki alanı adı değil, rastgele bir takma addır.
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
.ssh/config
ve okuyacak/etc/ssh/ssh_config
. yapılandırmada tanımlanan takma adlarla scp yapamamanızın bir nedeni var mı?