¿Cómo hacer que scp use direcciones ipv6?

26

Cuando intento usar scp sobre direcciones IPv6 me sale esto:

scp -6 osis@::1:/home/osis/test.file ./test.file
ssh: Could not resolve hostname : Name or service not known

Con scp todo lo que obtengo es

ssh: Could not resolve hostname : Name or service not known

Con esto obtengo un inicio de sesión en mi caja sin problemas

ssh osis@::1
Osis
fuente

Respuestas:

42

scprequiere alguna sintaxis especial. La dirección IPv6 debe estar entre corchetes, que luego debe escaparse. Entonces, en su ejemplo, se vería así:

scp -6 osis@\[2001:db8:0:1\]:/home/osis/test.file ./test.file

De lo contrario, se piensa que el primer punto ':' es el separador entre el archivo y las partes de la dirección, lo que daría como resultado

ssh: Could not resolve hostname 2001: Address family for hostname not supported

En su ejemplo con la ip ::1, se interpreta como si desea enviar ssh al host ''(en blanco).

Martin Owens -doctormo-
fuente
gracias por su respuesta, esta información de alguna manera faltaba en man scp; man ssh
Osis
2
Considere enviar una página de manual actualizada, entonces puede decir: ayudé.
Martin Owens -doctormo-
2
Cuando utilice el indicador -6, puede escribir localhost en lugar de :: 1 (que es la dirección IPv6 para localhost) para evitar los corchetes y, por lo tanto, cualquier necesidad de escapar de algo en el shell:scp -6 osis@localhost:/home/osis/test.file ./test.file
freddyb
1
Se supone que no debe usar direcciones IPv6, debe usar nombres DNS.
Anders
0

El comando anterior no funcionó para mí, el error que obtuve se debió a que se permitió que la dirección v6 tomara la ruta.

No es necesario utilizar la barra diagonal inversa "\". Según el ejemplo anterior, el comando siguiente funcionará.

scp -6 osis@[2001:db8:0:1]:/home/osis/test.file ./test.file
Jobz
fuente