DNS-запись для SSH (докер)

У меня есть докер-контейнер, который связывает порт 2222: 22. Можно подключиться с помощью ssh -T sub.example.com -p 2222 .

Я ищу способ получить доступ к контейнеру ssh без указания номера порта. Я думал, что это можно сделать с помощью записи DNS.

Я установил запись DNS SRV _ssh._tcp.sub 5 10022 sub.example.com для своего домена в интерфейсе администратора моего провайдера, это не работает.

Есть способ сделать это?

0
задан 30 March 2019 в 12:12
3 ответа

Вам нужны клиенты, которые на самом деле также используют записи SRV, и, насколько мне известно, ни один из (общих) клиентов SSH не поддерживает ...

Очень немногие общие приложения / протоколы действительно поддерживают SRV записи.


Вместо этого: отредактируйте файл конфигурации ssh-клиентов ~ /.ssh / config создайте запись для этого хоста, и вам, по крайней мере, больше не придется явно указывать номер порта в командной строке каждый раз, когда вам нужно подключиться:

#~/.ssh/conf
Host sub.example.com
    HostName sub.example.com
    Port 2222
    ...

, а затем ssh sub.example.com

6
ответ дан 4 December 2019 в 11:01

Некоторые люди хотели решить ту же проблему, что и вы, и сделали оболочку. Я не тестировал эти инструменты, но, читая их, они действительно ищут и используют информацию о портах. (Они могут даже сделать больше: выполнение ssh для имени, определенного в записи SRV, может закончиться с другим именем хоста, если запись была определена таким образом.) Теперь поддержка других команд (scp, sftp ...) или нескольких хостов там не поддерживается.

ssh-srv-wrapper.sh (bash)

Введение

ssh-srv-wrapper ] - это сценарий оболочки bash, который пытается найти SSH SRV. запись для первого хоста и использует то, что найдено, а не то, что было пройдено (если найдена действительная запись).

sshsrv (go)

sshsrv - это простая программа для поиска и подключения к конечной точке SSH через записи DNS SRV.

1
ответ дан 4 December 2019 в 11:01

Я использую wrapsrv вместе с ProxyCommand и socat , чтобы использовать записи SRV для определения конечная точка соединения:

Host *.my.domain
        ProxyCommand    wrapsrv _ssh._tcp.%h socat STDIO TCP:%%h:%%p

Преимущество в том, что и scp , и sftp должны использовать его из конфигурационного файла ssh.

Обратите внимание, что запись SRV требует ТРИ целые числа: приоритет, вес и порт, а не два, как вы указываете в своем вопросе.

4
ответ дан 4 December 2019 в 11:01

Теги

Похожие вопросы