3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

scpコマンドでファイルをリモートから取る際に詰まった際の解決策

Last updated at Posted at 2019-03-05

状況

本番のDBサーバーから必要データをcsvファイルに抽出後、ローカルにファイルを持ってくるのに詰まりました。
(mysqlにてデータをcsvに抽出する方法は参考記事にて記載。)

【サーバー構成】

◆本番DBサーバー (CSVファイルはここにあります)

  ↑ SSH

◆踏み台サーバー

  ↑ SSH

◆ローカル (ここまで移動させたい)

今回は

  1. 本番DBから踏み台サーバー
  2. 踏み台サーバーからローカルサーバー

の2ステップで移動させています。

エラー内容など

下記のコマンドを本番DBサーバーにて行っていたのですが、
ひたすらpermission denied(puclickey)で弾かれていました。

// ssh ユーザー名@ホスト名:ファイルパス(移動元) ユーザー名@ホスト名:ファイルパス(移動先)
ssh ec2-user@xx.xxx.xxxxxx:/tmp/hogehoge.csv ec2-user@xx.xxx.xxx.xxx:/tmp/
Permission denied (publickey).

試したこと

・該当ファイルおよびディレクトリーのpermissionやユーザー設定変更
→効果はいまひとつのようだ...

解決策

https://qiita.com/shuuhei/items/e435762017c11f71d07d
上記の記事を読んで、scpコマンドの実行場所がおかしかったことが判明

// 移動先のサーバー(今回だと踏み台サーバー)にて実行
// scp 本番サーバーの情報:ファイルパス 移動先のディレクトリパス(/がないとうまく通らない)
scp ec2-user@xx.xxx.xxxxxx:/tmp/hogehoge.csv /tmp/

本筋ではないが詰まったところ

・サーバーの情報は~/.sshのconfigにて短縮名を設定している場合、短縮名を使うと成功した
(今回だとローカルサーバー)

【例】
scp サーバーの短縮名:ファイルパス 移動先のディレクトリパス

・ec2で、プライベートIPでの接続が指定されている場合、ホスト名はプライベートIPを使用する(今回だと本番DBサーバーがそうでした)

【例】
scp ec2-user@ip-xx-x-x-xx:/hogeohoge.csv /tmp/

移動一つに結構時間がかかってしまったので、もっとスマートにしたいものですね。

参考記事

scpコマンドでファイル送る、とってくる
scpコマンド チートシート
MySQLのSELECT文でcsvを出力する

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?