A criação de uma interface de rede requer privilégios de raiz (ou pelo menos NET_CAP_ADMIN
). A mensagem de erro informa que o comando ssh do cliente não pôde criar a interface tun0, conforme confirmado por este trecho de strace ao executar o cliente ssh:
21510 open("/dev/net/tun", O_RDWR) = 4
21510 ioctl(4, TUNSETIFF, 0x7fff5f9f1530) = -1 EPERM (Operation not permitted)
21510 close(4) = 0
21510 write(2, "Tunnel device open failed.\r\n", 28) = 28
21510 write(2, "Could not request tunnel forward"..., 38) = 38
Você precisa executá-lo como root, por exemplo (configurando e) usando sudo
ou su -c
e provavelmente fornecendo a chave ssh correta usando -i
(ou pode escolher a chave ssh do root). Em um cliente Debian, isso funciona:
su -c 'ssh -i ~myuser/.ssh/id_rsa -NTCf -w 0:0 root@server-ip'
Você deve substituir -w 0:0
por -w any
durante o teste: tentar criar tun0
duas vezes, porque ele já estava lá também falhará.
Se você não tiver privilégios no lado do cliente, nem for permitido executar VMs ou contêineres com acesso de rede ao servidor-ip, provavelmente não será bem-sucedido.
NOTA: como o OP encontrou, e como eu pude testar, a partir de 2018-07-02, os pacotes Debian Buster (testing) openssh-client e openssh-server 7.7p1-2 ainda têm um bug impedindo o uso de tun / tap tunnels .