-1

Почему я не могу указать порт с хостом, как в http, например. ssh 127.0.0.1:2222? Каким-то образом это выглядит как обычный путь, но, по крайней мере, клиент OpenSSH этого не понимает.

2 ответа2

3

ssh.c не содержит код, который это поддерживает; код, который читает хост, ищет только формы host или user@host :

    if (ac > 0 && !host) {
            if (strrchr(*av, '@')) {
                    p = xstrdup(*av);
                    cp = strrchr(p, '@');
                    if (cp == NULL || cp == p)
                            usage();
                    options.user = p;
                    *cp = '\0';
                    host = xstrdup(++cp);
            } else
                    host = xstrdup(*av);
            if (ac > 1 && !opt_terminated) {
                    optind = optreset = 1;
                    goto again;
            }
            ac--, av++;
    }

Форма host:port используемая некоторыми программами, - не единственный способ; Например, telnet использует host port как и nc. Даже более старые программы rsh и rlogin не позволяют указывать порт. Этот выбор остается за автором программы, а для ssh host:port не использовался.

0

OpenSSH не поддерживает формат host:port . Если вы хотите указать порт для SSH, используйте опцию -p .

ssh -p 2222 ibug@example.com

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .