それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

scp でサーバのport 番号( ポート指定)して、ファイル転送

scp コマンドでポート指定をするには

scp -P [port]

大文字の P の後にポート番号を続けます。

http みたいにポート番号を指定できないか http://example.com:8080/ と思ったけど無理だった。

サンプル

### local file to remote 
scp -P 2222 ./2022-04-20.tgz  root@example.tld:/path/to/dir/
#### remote file to local
scp -P 2222 root@example.tld:/path/to/file  backup.tgz

リモートtoリモートはない。なので、ポートは常に一個ですね。

よく間違える(rsync/ssh/scp)

サーバーの listen ポートの設定はポートフォワーディングをしてたり、SSH踏み台を使ってない限り、ヤッパリめんどくさいのです。

SSH の場合

ssh 192.168.1.1:2222

SCPの場合

scp 192.168.1.1 -P 2222

rsync の場合

rsync --port 2222 192.168.1.1

全部違うの本当に困る。

scp の場合の特徴

じつは、他にポート番号を指定するオプションがあったりします。

scp には SSH オプションというのがあり

scp -o 'Port 2222' 192.168.1.1

このようにもかけます。

scp の場合の注意点

引数の順番が大切です。

scp -P 2222 local_file 192.18.1.1:~/path

scp でポート指定するとき引数の順番を適当にすると -P は解釈されません。

これはNG

scp  local_file 192.18.1.1:~/path -P 2222
scp  local_file -P 2222 192.18.1.1:~/path 

ただしくはこう

ssh -P 2222 $LOCAL $SERVER_IP:$SERVER_PATH

この辺のややこしさも。これもSCPがあまり使われつかわれてない理由なのかもしれませね。(あくまでわたしの身近なところだけですけどあまり使われない)

port のオプションは本当によく忘れてます。

2020-04-18

自分で後で見るときに検索にかからないので、記述を大幅に追記した。