LoginSignup
1
1

ローカルLinux⇔リモートLinuxでのファイルコピー

Last updated at Posted at 2024-01-19

パーミッション問題が発生するので回避方法
OPCセグメント→AWSセグメントにトンネルを経由して送受信
ファイルをAWS→OPCにコピー

1.ログイン経路を確保。(1行で到達する方法)
myproject-web.pemを用意した上で
ホームディレクトリ/.ssh下にconfigを作成で1行でsshログインできます。
(ex./root/.ssh/)

「パーミッション:600」にする
↓中身

config
#OCI-0_205
Host oci_ope_web
  Hostname 10.0.0.205
  User opc
  IdentityFile ~opc/.ssh/id_rsa

#AWS-0_205
Host ope_web
  Hostname 106.133.79.64
  User ec2-user
  IdentityFile ~opc/myproject-web.pem
  ProxyCommand ssh oci_ope_web -W %h:%p

#AWS-0_206
Host ope_web_stg
  Hostname 10.0.0.206
  User ec2-user
  IdentityFile ~opc/myproject-web.pem
  ProxyCommand ssh ope_web -W %h:%p

#AWS-1_035
Host ope_db1
  Hostname 10.0.1.35
  User ec2-user
  IdentityFile ~opc/myproject-web.pem
  ProxyCommand ssh ope_web -W %h:%p

#AWS-1_036
Host ope_db2
  Hostname 10.0.1.36
  User ec2-user
  IdentityFile ~opc/myproject-web.pem
  ProxyCommand ssh ope_web -W %h:%p

「ssh db1」でope_webへのログインを手作業で経ることなくAWS内の10.0.1.35にダイレクトログイン。

参考にしたURL
SSHコマンドで多段接続する方法(config設定、秘密鍵利用)
https://rurukblog.com/post/ssh-multi-stage/

他の方法でもトンネルを掘る方法はあります。
👇
踏み台で sudo -u しているsshでの ssh_config
https://qiita.com/shase428q/items/c796188b9840eaec9ead
踏み台サーバを飛び越えて一発で目的のサーバへsshする方法
https://qiita.com/hkak03key/items/3b0c4752bfbcc52e676d

2.到達先でのroot権限を確保。(通常のやり方では「1.」でログインした平ユーザーでの権限になってしまう)
ローカルLinuxでは「sudo su」でroot化。
リモートLinuxでは「rsync」のオプションを使いroot権限で読み・書きする。
#プロンプトはrootにて実行している状態

AWS内での205(まず2つファイル作成)

[root@ip-10-0-0-205 ec2-user]# ll who-am-i*
-rw------- 1 ec2-user ec2-user 13 Jun 16 10:36 who-am-i0616a.txt
-rw------- 1 root     root     15 Jun 16 10:36 who-am-i0616b.txt
[root@ip-10-0-0-205 ec2-user]# pwd
/home/ec2-user
[root@ip-10-0-0-205 ec2-user]#

OPC内での205(↑で作った2ファイルのパーミッションを変えずに持ってくる)

[root@0205oci_opeweb opc]# ll who-am-i0616*
ls: cannot access 'who-am-i0616*': No such file or directory
[root@0205oci_opeweb opc]# rsync -arp --rsync-path="sudo rsync" ope_web:/home/ec2-user/who-am-i0616a.txt /home/opc
[root@0205oci_opeweb opc]# rsync -arp --rsync-path="sudo rsync" ope_web:/home/ec2-user/who-am-i0616b.txt /home/opc
[root@0205oci_opeweb opc]# ll who-am-i0616*
-rw------- 1 ec2-user ec2-user 13 Jun 16 10:36 who-am-i0616a.txt
-rw------- 1 root     root     15 Jun 16 10:36 who-am-i0616b.txt
[root@0205oci_opeweb opc]# pwd
/home/opc
[root@0205oci_opeweb opc]#

↑所有者とグループがec2-userになっているファイルはそれぞれopcに変更する必要がありますが、リスキーな手間は無くなるかと思います。

参考URL
root権限でrsyncを実行する
https://ex1.m-yabe.com/archives/6104
(👇コチラも参考になります。)
「SSHホスト鍵が変わってるよ!」と怒られたときの対処
https://qiita.com/hnw/items/0eeee62ce403b8d6a23c

練習として作ったコマンド

rsync -arp --rsync-path="sudo rsync" ope_web:/home/ec2-user/who-am-i0616a.txt /home/opc
rsync -arp --rsync-path="sudo rsync" ope_web:/home/ec2-user/who-am-i0616b.txt /home/opc
1
1
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
1
1