When trying to copy some large files between two PCs I was annoyed by the slow wifi and did connect both by a direct LAN cable. But since I didn’t want to manually configure IPs I did remember that IPv6 would give each interface an unique link-local address immedeately. So I went on to figure out how to correctly pass this address to ssh/scp.
Let’s assume the link-local address of ‘fe80::f4de:ff1f:fa5e:feee’.
This won’t work because these link-local addresses are only unique on a given link. So you need to specify the interface as well.
Of course you have to change the interface identifier acording to your system. On Linux this would most probably be eth0.
This was fine for ssh, but for scp I did also need a remote source directory.
scp -6 user@fe80::f4de:ff1f:fa5e:feee%en0:/some/path/
This won’t work because the colons confuse ssh. You need to be more explicit by using square brackets.
Forth and final try:
scp -6 user@[fe80::f4de:ff1f:fa5e:feee%en0]:/some/path/ .
Figuring out why this is no auto-generated link-local address is left as an exercise to the reader (but not relevant for this post).