質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.33%

  • Linux

    4043questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • AWS(Amazon Web Services)

    2166questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • MacOS(OSX)

    2039questions

    MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

  • コマンド

    228questions

    コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

ローカルからAWS EC2サーバーへファイルをアップロードする方法を教えてください。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 4,417

takyas

score 44

【開発環境】
・MacOSX
・AWS (Red Hat Enterprise Linux)

【ディレクトリ構造】
秘密鍵                 → /Users/my_name/.ssh/secret_key.pem
UPしたいファイル  → /Users/my_name/Desktop/up_dir/up_file.html

【ターミナル】
秘密鍵にてEC2にログイン

my_name$ ssh -i /Users/my_name/.ssh/secret_key.pem ec2-user@{public_IP}


ログイン成功

[ec2-user@{private_IP} ~]$

ここから不明点です。

EC2にファイルをアップロードする場合は、下記で出来ると思います。

# scp -i ①秘密鍵のパス ②送信するファイルのパス ③ユーザ名@該当インスタンスのパブリックIPアドレス:④ファイルを配置するパス


しかしながら、

[ec2-user@{private_IP} ~]$ scp -i ①/Users/my_name/.ssh/secret_key.pem ②/Users/my_name/Desktop/up_dir/up_file.html ③{pablic_IP_address}.compute.amazonaws.com:④~/home/ec2-user/


と実行しても

Warning: Identity file /Users/my_name/.ssh/secret_key.pem not accessible: No such file or directory.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
lost connection


とエラーが出てきます。

EC2のサーバー上には、"/Users/my_name/.ssh/secret_key.pem"は存在しないので当たり前だと思うのですが、であれば、①秘密鍵のパスの部分には何とすべきでしょうか?
色々試してみたのですが、解決できずこちらに投稿しました。

その他の条件で必要な情報があれば教えていただきたいです。
質問がうまく出来ず、内容をご理解いただけるか分かりませんので、分かりにくい箇所があればご指摘いただければと思います。

宜しくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

以下のメッセージ通り、/Users/my_name/.ssh/secret_key.pemが存在していません。

Warning: Identity file /Users/my_name/.ssh/secret_key.pem not accessible: No such file or directory.

プロンプトが[ec2-user@{private_IP} ~]$ となっていますが、scpコマンドを実行するのはEC2側でなく、Mac側です。
実行場所を間違えてるだけではないですか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/20 14:39

    moonphaseさん

    ご指摘の通りEC2側で実行しておりました。
    ありがとうございます。
    Mac側で実行したところ、

    Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
    lost connection

    というPermissionエラーが出ました。
    secret_key.pemは400ですので、これは配置先の権限ということでしょうか?

    キャンセル

  • 2017/01/20 14:48

    Permission deniedのよくあるケースは以下です。
    確認してみてください。

    ローカル側:
    $HOMEのパーミッションが 700 ではない。⇒chmod 700 $HOMEで解決
    $HOME/.sshのパーミッションが700ではない。⇒chmod 700 $HOME/.sshで解決

    リモート側
    $HOMEのパーミッションが 700 ではない。⇒chmod 700 $HOMEで解決
    $HOME/.sshのパーミッションが700ではない。⇒chmod 700 $HOME/.sshで解決

    キャンセル

  • 2017/01/20 16:00

    ありがとうございます。
    ローカル、リモートともに700に設定したのですが、Permission deniedが表示される状況です。

    ローカル側
    $HOME => drwxr-xr-x+ 53 my_name staff 1802 1 19 17:46 my_name
    $HOME/.ssh => drwx------ 6 my_name staff 204 1 19 17:46 .ssh

    リモート側
    $HOME => drwx------. 4 ec2-user ec2-user 4096 1月 18 23:32 ec2-user
    $HOME/.ssh => drwx------. 2 ec2-user ec2-user 46 1月 20 01:44 .ssh

    他の文献もググって引き続き調査してみます。
    その他に何か考えられることがあれば、
    お時間に余裕のある時で結構ですのでご教示いただけますと幸いです。

    キャンセル

  • 2017/01/20 16:16

    scpに-vオプションを指定して、その内容を教えてください。

    キャンセル

  • 2017/01/20 16:37

    こちらです。
    Executing: program /usr/bin/ssh host ec2-{public_IP}-.ap-southeast-1.compute.amazonaws.com, user (unspecified), command scp -v -t ~/
    OpenSSH_6.9p1, LibreSSL 2.1.8
    debug1: Reading configuration data /etc/ssh/ssh_config
    debug1: /etc/ssh/ssh_config line 20: Applying options for *
    debug1: /etc/ssh/ssh_config line 102: Applying options for *
    debug1: Connecting to ec2-{public_IP}.ap-southeast-1.compute.amazonaws.com [{public_IP}] port 22.
    debug1: Connection established.
    debug1: key_load_public: No such file or directory
    debug1: identity file /Users/{my_name}/.ssh/dev-test.pem type -1
    debug1: key_load_public: No such file or directory
    debug1: identity file /Users/{my_name}/.ssh/dev-test.pem-cert type -1
    debug1: Enabling compatibility mode for protocol 2.0
    debug1: Local version string SSH-2.0-OpenSSH_6.9
    debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1
    debug1: match: OpenSSH_6.6.1 pat OpenSSH_6.6.1* compat 0x04000000
    debug1: Authenticating to ec2-{public_IP}.ap-southeast-1.compute.amazonaws.com:22 as 'yasunoritakahashi'
    debug1: SSH2_MSG_KEXINIT sent
    debug1: SSH2_MSG_KEXINIT received
    debug1: kex: server->client chacha20-poly1305@openssh.com <implicit> none
    debug1: kex: client->server chacha20-poly1305@openssh.com <implicit> none
    debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
    debug1: Server host key: {host_key}
    debug1: Host 'ec2-{public_IP}.ap-southeast-1.compute.amazonaws.com' is known and matches the ECDSA host key.
    debug1: Found key in /Users/{my_name}/.ssh/known_hosts:11
    debug1: SSH2_MSG_NEWKEYS sent
    debug1: expecting SSH2_MSG_NEWKEYS
    debug1: SSH2_MSG_NEWKEYS received
    debug1: SSH2_MSG_SERVICE_REQUEST sent
    debug1: SSH2_MSG_SERVICE_ACCEPT received
    debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
    debug1: Next authentication method: publickey
    debug1: Trying private key: /Users/{my_name}/.ssh/dev-test.pem
    debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
    debug1: No more authentication methods to try.
    Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
    lost connection

    です。
    宜しくお願い致します。

    キャンセル

  • 2017/01/20 16:45

    scpするコマンドにリモートユーザー名ec2-userは含めていますか?

    scp -i $HOME/.ssh/dev-test.pem /Users/my_name/Desktop/up_dir/up_file.html ec2-user@{pablic_IP_address}.compute.amazonaws.com:
    で、ec2-userのホームディレクトリにファイルをコピーできます。
    元々の質問にある":~/home/ec2-user/" では、リモートのホームディレクトリ配下の指定ディレクトリにファイルをコピーしようとするので、実際は"/home/ec2-user/home/ec2-user/"というディレクトリの下にファイルを転送しようとします。

    キャンセル

  • 2017/01/20 16:55

    ご指摘の通りユーザー名を含んでおりませんでした。
    無事アップロード出来ました。
    デバッグまで解析いただきましてありがとうございます。

    ベストアンサーとさせていただきます。

    またteratailを利用した際には宜しくお願い致します。
    ありがとうございました。

    キャンセル

0

-iで指定する鍵ファイルはローカル側に存在するものです。
ローカル側の鍵ファイルのパスが間違っていないか確認してください。
また、コマンドを実行しているユーザーが、その鍵ファイルをread出来る権限(Permission)があるかも確認してみてください。

ls -l /Users/my_name/.ssh/secret_key.pem

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/20 14:10 編集

    kunaiさん

    ありがとうございます。
    ご指示いただきました通り下記を実行してみました。

    my_name$ ls -l /Users/my_name/.ssh/secret_key.pem

    結果、

    -r-------- 1 my_name staff 1698 1 19 12:08 /Users/my_name/.ssh/secret_key.pem

    というものでした。
    read権限(400)はあると思うのですが、その他に何か考えられることがあれば、
    お時間に余裕のある時で結構ですのでご教示いただきたいです。

    キャンセル

同じタグがついた質問を見る

  • Linux

    4043questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • AWS(Amazon Web Services)

    2166questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • MacOS(OSX)

    2039questions

    MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

  • コマンド

    228questions

    コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。