Чи можливий запит ~ / .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
) можуть використовуватися підстановки .