WindowsからAmazon Linux2へのファイル転送
タイトルの通りです。
開発環境(Windows)でJekyllやFlutterを使って作成したサイトをAmazon Linux2でホストすることを目的に ファイル転送方法をまとめました。
PuTTYをダウンロード
以下からMSI (‘Windows Installer’)をダウンロード
PuTTYとは
リモート接続のクライアントアプリ。
PuTTYを使用する理由
AWS公式ドキュメントのおすすめです。この記事より公式ドキュメントを見たほうが早いかも。。。
PuTTY を使用した Windows から Linux インスタンスへの接続
- scp
- PuTTYに付属しており、sshを通してファイルコピーしてくれます。これを使用してEC2インスタンスにファイルを転送します。
- PuTTYgen
- PuTTYに付属しており、Amazon EC2で自動生成される秘密鍵(.pem)はscpで使用できないため、scpで使用できる(.ppk)に変換します。
PuTTYをセットアップ
ダウンロードしたインストーラを実行して、インストールする。 全部デフォルトのまま進めた。
秘密鍵を変換
PuTTYgenを起動
インストールできていたら、powershellを開いて以下のコマンドを実行すると、PuTTYgenが起動する。
PuTTYgen
EC2インスタンスに指定したキーペアの秘密鍵をロードする
キーペア作成時にpemファイルをダウンロードしているので、それを選択する。
選択すると、”PuTTYgen Notice”というタイトルのダイアログが出てくる。OKを選択。 鍵が読み込まれる。
変換された秘密鍵を保存する
秘密鍵保存を選択すると、PuTTYのscpで使用できるppkファイルで保存される。 ワーニングのダイアログが出てくるが、OKを選択。
⇒”出力される秘密鍵のファイルが暗号化されてないから危ない”というワーニング
ファイル転送
EC2インスタンスを実行する
AWS コンソール等から実行しておく。
転送するファイルを作成する
test.txtを作成し、”hellow ec2”と入力する。
scpコマンドを実行
powershellで以下のコマンドを実行すると、ファイルが転送される。
pscp -i C:\work\aws_ssh\aws-test.ppk C:\work\aws_ssh\test.txt ec2-user@XXX.XXX.XXX.XXX:/home/ec2-user/
- -i C:\work\aws_ssh\aws-test.ppk 秘密鍵(*.ppk)へのパス。パスは自身の環境に合わせて変えてください。
- C:\work\aws_ssh\test.txt 転送するファイルへのパス
- ec2-user@XXX.XXX.XXX.XXX:/home/ec2-user/
転送先。
- ec-user はデフォルトで作成されたAmazon Linux2のユーザ名。
- @XXX.XXX.XXX.XXX はEC2インスタンスのパブリックipv4アドレス。パブリックDNSでもOK。
- :/home/ec2-user/ は転送先のディレクトリ。