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