SSH до вузла з відомим, але не статичним (змінним) IP


1

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

Я маю віддалену машину з динамічним DNS, який розміщує свій поточний IP-файл у файлі в загальному папці. Я вважаю за краще знайти його IP-адресу, ніж використовувати одну з динамічних служб DNS.

Тепер я хотів би ssh server і мати всі варіанти і переваги від мого .ssh/config файлу. Але оскільки IP є динамічним і не може бути збережений у цьому файлі конфігурації, я не впевнений, що робити. Чи можу я отримати доступ до IP і використовувати його з ProxyCommand?

Відповіді:


5

Звичайно:

ProxyCommand "~/bin/connect-via-dropbox %h %p"

…де connect-via-dropbox Сценарій буде шукати IP-адресу з вашого Dropbox, а потім підключитися до нього за допомогою nc, socatабо ncat.

Наприклад:

#!/bin/sh
host=$1
port=$2

file="$HOME/Dropbox/Server IPs/$host.txt"
if [ ! -s "$file" ]; then
    echo "error: '$file' empty or not found" >&2; exit 1
fi

ip=$(< "$file")
exec nc -v "$ip" "$port"
#exec socat stdio "tcp:$ip:$port"
#exec ncat "$ip" "$port"

Вибір цього, хоча у мене були проблеми з його роботою. Насправді я використовую ваш коментар до @Pavel і аліасу. Дякуємо за підказки.
mankoff

3

Ви можете використовувати backquote - & gt; `& lt; - щоб замінити команду на її вивід Щось на зразок

ssh `cat file`

Так, це працює з командного рядка. І я можу встановити псевдонім. Але як я можу отримати варіанти в .ssh/config працювати з цією установкою?
mankoff

Всі параметри працюватимуть як звичайно, команда ssh навіть не знає, що ім'я вузла виводиться з cat, а не вводиться вами
Pavel Bernshtam

@PavelBernshtam: Це свого роду проблема тут - з ssh просто бачить IP-адресу і інший IP-адреса кожного разу, трохи важко створити розділ конфігурації, який завжди відповідає йому.
grawity

1
Аналогічний метод б Робота, однак, є ssh myserver -o Hostname=$(cat file), які б застосували варіанти з Host myserver розділ незалежно від IP.
grawity
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.