Porque eu não posso ssh para hostname: port

-1

Por que não posso especificar a porta com host como em http, por exemplo. ssh 127.0.0.1:2222? De alguma forma, parece normal, mas pelo menos o cliente OpenSSH não entende isso.

    
por Zaris 15.09.2018 / 16:54

2 respostas

3

ssh.c não contém código que suporte isso; o código que lê o host só procura por host ou user@host forms:

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

A forma host:port usada por alguns programas não é o único caminho; telnet por exemplo usa host port como nc . Os programas ainda mais antigos rsh e rlogin não parecem permitir que a porta seja especificada. Essa escolha depende do autor do programa e, para ssh host:port , não foi usado.

    
por 15.09.2018 / 17:20
0

O OpenSSH não suporta o formato host:port . Se você quiser especificar uma porta para o SSH, use a opção -p .

ssh -p 2222 [email protected]
    
por 15.09.2018 / 17:39

Tags