[Linux] 用 scp 傳檔案到 IPv6 位址的遠端機器上

[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,720 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料