パスワードなしのec2インスタンスへのscp(セキュアコピー)


404

EC2インスタンス(FreeBSD 9 AMI ami-8cce3fe5)を実行していますが、amazonで作成したキーファイルを使用して、パスワードプロンプトなしでsshで接続できます。問題ありません。

ただし、scpを使用してインスタンスにファイルをコピーする場合、パスワードの入力を求められます。

scp somefile.txt -i mykey.pem root@my.ec2.id.amazonaws.com:/

Password:

なぜこれが起こっているのか/どのようにそれを防ぐことができるのか?


ユーザーとホストにまったく同じ識別子を使用していますか?
リンチ

識別子が何を意味するのかよくわかりませんが、説明してもらえますか?
ホフ

一方の接続にIPアドレスを使用し、もう一方の接続に名前を使用すると、機能しません。私-iはあなたがあなたのアイデンティティを提供するためにオプションを使うことを見ました。sshでのログインに使用するコマンドも表示する必要があるかもしれません。
リンチ

リンチに感謝、それを考え出した!
ホフ2011

回答:


804

私はそれを考え出した。議論の順序が間違っていた。これは機能します:

scp -i mykey.pem somefile.txt root@my.ec2.id.amazonaws.com:/

14
sshを介してec2に接続する方法を理解している人は、sshコマンドをに変更しscp、pemファイルの後に名前ファイルを追加します。
Claudio Santos

11
この答えは少し古いですので、私の新しいEC2インスタンスから、より最近の例:SCP -i kp1.pem ./file.txt ec2-user@1.2.3.4:/ホーム/ EC2ユーザー
siliconrockstar

1
@siliconrockstarあなたの声明ec2-user@1.2.3.4:/home/ec2-userは、短くて簡単なec2-user@1.2.3.4:./ ./FTWに簡単に置き換えられます!
ブロック

2
非常に遅いコメントですが、非標準のポートを使用している場合、@ ClaudioSantosの提案は正確に機能しません。sshの場合は-p、scpの場合は-Pです。
イヌクシュク

1
* .PEMファイルを使用してec2にSSH接続できます。ただし、SCPを使用してファイルをSCPしたい場合、「Permission Denied」エラーが発生します。どうすればこれを解決できますか?
AleX_

58
scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path

(-r)パラメーターは必須ではありませんが、リモートパスの末尾から(/)を削除する必要があります。あなたの例では、私のために多くのおかげで働いていた
アッバス

35

以下のコマンドを使用して、ローカルのLinux Centos 7からAWS EC2にコピーしました。

scp -i user_key.pem file.txt ec2-user@my.ec2.id.amazonaws.com:/home/ec2-user


19
scp -i ~/.ssh/key.pem ec2-user@ip:/home/ec2-user/file-to-copy.txt .

ファイル名は、pemファイルとec2-user文字列の間にあるべきではありません-これは機能しません。これにより、コピーしたファイルの名前を予約することもできます。


14

ローカルサーバーからリモートサーバーにファイルをコピーする

sudo scp -i my-pem-file.pem ./source/test.txt ec2-user@1.2.3.4:~/destination/

リモートサーバーからローカルマシンにファイルをコピーする

sudo scp -i my-pem-file.pem ec2-user@1.2.3.4:~/source/of/remote/test.txt ./where/to/put

だから基本的に構文は:-

scp -i my-pem-file.pem username@source:/location/to/file username@destination:/where/to/put

-i以下のためであるidentity_file


8

あなたが送りたいあなたのpemファイルとsomefile.txtがダウンロードフォルダにあると仮定しましょう

scp -i ~/Downloads/mykey.pem ~/Downloads/somefile.txt root@my.ec2.id.amazonaws.com:~/

うまくいかない場合はお知らせください


scp -i /Users/Username/Downloads/myfile.pem -r ubuntu@my.ect.id.amazonaws.com:〜/〜/ Desktop /サーバーからローカルにファイルを転送する場合
Yatender Singh

2
:/最後に「アクセスが拒否されました」と感謝しますが、:~/それは機能します
カルダモン2017

そうです:/はルートフォルダーで、:〜/はユーザーフォルダーなので、ルートユーザーであれば:/または:〜/は何でも機能し、ルートユーザーでない場合は:〜/を使用するだけです。
Yatender Singh 2017

3

scp -i /home/barkat/Downloads/LamppServer.pem lampp_x64_12.04.tar.gz

これは皆さんにとって非常に役に立ちます


2

私のhadoopec2cluster.pemファイルはローカルMacのディレクトリにある唯一のファイルで、を使用してそれをawsにscpできませんでしたscp -i hadoopec2cluster.pem hadoopec2cluster.pem ubuntu@serverip:~

hadoopec2cluster_2.pemにhadoopec2cluster.pemコピーされ、その後scp -i hadoopec2cluster.pem hadoopec2cluster_2.pem ubuntu@serverip:~。出来上がり!


2

で公開鍵ファイルを指定していたので、

scp -i [private key file path]

その間違いを見つけて、代わりに秘密鍵のパスに変更したとき、私はすべて準備が整いました。


2

あなたのケースでは、ユーザーrootは何の問題もありません。ただし、SSHの下で別のユーザーとしてログインする必要がある特定のケースでは、scp-ingしているディレクトリに、SSHしているユーザーに対して適切な権限があることを確認してください。


1

PSCPを使用するには、PuTTYgenを使用した秘密鍵の変換で生成した秘密鍵が必要です。LinuxインスタンスのパブリックDNSアドレスも必要です

pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@public_dns:/home/ec2-user/Sample_file.txt

0

このコードを書く

scp -r -o "ForwardAgent=yes" /Users/pengge/11.vim root@192.168.2.228:/root/

宛先サーバーにアクセスできるSSHキーがあり、ソースサーバーにはない場合、-o "ForwardAgent = yes"を追加すると、SSHエージェントをソースサーバーに転送して、SSHキーを使用して接続できるようになります。宛先サーバー。


-6

テスト済み:

次のコマンドを実行します。

sudo shred -u /etc/ssh/*_key /etc/ssh/*_key.pub

次に:

  1. amiを作成します(ec2の画像)。
  2. ステップ2の新しいami(image)からの起動は、新しいキーを選択しました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.