See the Elephant

1992生まれのプログラマが書くエンジニアブログ

scpでホスト名にスラッシュが入る時の対処法

今日は sshでハマりました.

リモートサーバ上には file/dir が存在するはずなのに存在しないと言われる.

$ ssh  web/shuzon.ap-northeast-1

$ ls / 
/hoge ...

$ scp -r web/shuzon.ap-northeast-1:/hoge hoge 

cp: web/shuzon.ap-northeast-1:/hoge: No such file or directory

実はこれホスト名に / スラッシュが入っていると起こる現象です.

ホスト名はエスケープできない です

$ scp web3\/shuzon.ap-northeast-1:/hoge /hoge

cp: scp web3\/shuzon.ap-northeast-1:/hoge /hoge: No such file or directory

$ scp web3\\/shuzon.ap-northeast-1:/hoge /hoge

cp: scp web3\/shuzon.ap-northeast-1:/hoge /hoge: No such file or directory

これはホスト名を変えるしかありません.

変えましょう.

ちなみにRFCでホスト名の予約語として / が登録されています. 使っちゃダメなんですねー.

RFC 2396 - Uniform Resource Identifiers (URI): Generic Syntax

今日はここまで