【scp】Tera Termのssh scpでLinuxサーバからローカルにファイルをコピーする


やりたいこと

タイトルの通り。
クラウド上のLinuxサーバにあるデータをローカルPCにダウンロードする。

前提

・ローカルPCにTera Termがインストールされていること

SSH SCP

Tera Termにある機能。
SSHでサーバにログインした後、コピー元とコピー先のパスを入力すればファイルコピーができる。

手順

1.Tera TermにSSHでログイン

ここは割愛。各々の方法でログインする。

2.SSH SCPを開き、パスを入力

「ファイル」から「SSH SCP」を選択
ローカル⇒サーバの場合は上の段、サーバ⇒ローカルの場合は下の段を入力。
今回は後者。

「From」にLinuxサーバ上のコピーしたいファイルのパスを記述。
「To」にコピーしたファイルを置きたいローカルPCのパスを記述する。

「Send」を押して「To」で指定したローカルPCのパスにファイルがコピーされているいるか確認。

Permission deniedが出る時

SSHコピーしたいファイルの所有者や権限の問題で「Permission denied」とエラーが出て、失敗するときがある。(私は失敗してこの記事を書いています。)

「root」ユーザにスイッチしてからファイルの受信を行っても、最初にログインしたユーザの権限でしかファイルの受信が出来ないらしい。↓
https://www.j-oosk.com/teraterm/file-transfer/143/

初めからrootでログインできる場合はそれで問題ないと思う。

対処法

ファイルをサーバ内でコピーし、コピーしたファイルの所有者を変更することで解決した。

1.rootユーザにスイッチしてファイルをコピー

sudo su -
cp 【コピーしたいファイルのパス】【コピー先のディレクトリパス】

2.コピーしたファイルの所有者を変更

'chown 【所有者にしたいユーザ】 【所有者を変更したいファイルのパス】

3.所有者が変わったことを確認

ls -l

この操作を行った後であれば、この記事の初めの手順でコピーができるはず。