[Linux] 用 scp 傳檔案到 IPv6 位址的遠端機器上
今天想用 scp 將檔案傳輸到一台 IPv6 位址的機器上,出現了問題。
但用 ssh 試著連上去看看,是可以成功的,所以 IPv6 網路並沒有問題:
ssh root@2620:101:4002:771::100
但是用 scp 對同樣的 IPv6 位址就會說 Invalid argument:
testuser@localhost ~ $ scp myfile root@2620:101:4002:771::100:/tmp/
ssh: connect to host 2620 port 22: Invalid argument
lost connection
查了一下,原來是 scp 在處理 IPv6 位址時,要像在瀏覽器裡使用 IPv6 位址一樣,
用 [ipv6 address] 的語法,而在 shell 裡還要用反斜線 \ 來對 [] 做跳脫 (escape),
因此正確的指令要像下面這樣:
scp myfile root@\[2620:101:4002:771::100\]:/tmp/
這樣子就沒問題囉~
參考資料:How to make scp to use ipv6 addresses?
(本頁面已被瀏覽過 1,850 次)