Чи можливий запит ~ / .ssh / config у командному рядку? Скажімо, я хотів би знайти, на яку IP-адресу вказується конкретний псевдонім в окремій програмі, чи це можливо?
Чи можливий запит ~ / .ssh / config у командному рядку? Скажімо, я хотів би знайти, на яку IP-адресу вказується конкретний псевдонім в окремій програмі, чи це можливо?
Відповіді:
Якщо я розумію, що ви просто хочете повернути IP-адресу, тобто 192.168.1.1, то це один (неймовірно крихкий) спосіб запиту файлу з командного рядка, за умови, що у вас є відповідні дозволи на його читання, і ваш .ssh/configпослідовно відформатовано:
awk '/Host $youralias/ {getline; print $2}' .ssh/config
Я публікую це лише так, як хотів би зрозуміти, як awkце зробити, але мої знання, очевидно, досить обмежені.
Не зовсім впевнений, що ви просите ...
Скажіть, у вас є псевдонім 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.
Це трохи більше надійний спосіб вилучення на HostNameоснові Hostв .ssh/configфайлі.
sshalias()
{
awk "\$1==\"Host\" {host=\$2} \$1==\"HostName\" && host==\"$1\" {print \$2}" "$HOME/.ssh/config"
}
Згаданий вами файл - це текстовий файл, він містить імена хостів та, можливо, IP-адреси для ідентифікації машин, до яких ви підключаєтесь. Імена хостів можна вирішити на IP-адреси за допомогою host(1)команди. Формат досить простий, тому не дуже важко з’ясувати, що там є. Зауважте, що у файлі (стан моїх змін *.fedoraproject.org) можуть використовуватися підстановки .