OpenSSH - відобразити псевдоніми в ~ / .ssh / config на IP-адреси в командному рядку


9

Чи можливий запит ~ / .ssh / config у командному рядку? Скажімо, я хотів би знайти, на яку IP-адресу вказується конкретний псевдонім в окремій програмі, чи це можливо?

Відповіді:


2

Якщо я розумію, що ви просто хочете повернути IP-адресу, тобто 192.168.1.1, то це один (неймовірно крихкий) спосіб запиту файлу з командного рядка, за умови, що у вас є відповідні дозволи на його читання, і ваш .ssh/configпослідовно відформатовано:

awk '/Host $youralias/ {getline; print $2}' .ssh/config


Я публікую це лише так, як хотів би зрозуміти, як awkце зробити, але мої знання, очевидно, досить обмежені.


1

Не зовсім впевнений, що ви просите ...

Скажіть, у вас є псевдонім SSH для 'mainserver', щоб ви могли це зробити ssh mainserver. Якщо ви хочете, щоб він також працював ping mainserver, вам потрібно ввести псевдонім /etc/hosts, наприклад:

/ і т.д. / хости:

192.168.0.1 comp-one
192.168.0.2 comp-two

192.168.0.20 mainserver

Тоді ви могли б зробити, ping mainserverі це пінг 192.168.0.20.


0

Це трохи більше надійний спосіб вилучення на HostNameоснові Hostв .ssh/configфайлі.

sshalias()
{
    awk "\$1==\"Host\" {host=\$2} \$1==\"HostName\" && host==\"$1\" {print \$2}" "$HOME/.ssh/config"
}

-1

Згаданий вами файл - це текстовий файл, він містить імена хостів та, можливо, IP-адреси для ідентифікації машин, до яких ви підключаєтесь. Імена хостів можна вирішити на IP-адреси за допомогою host(1)команди. Формат досить простий, тому не дуже важко з’ясувати, що там є. Зауважте, що у файлі (стан моїх змін *.fedoraproject.org) можуть використовуватися підстановки .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.