2012-07-09 171 views
125

我想用我的Mac終端從下載(phpMyAdmin我在線下載)scp文件到我的Amazon EC2實例。使用scp將文件複製到Amazon EC2實例?

我使用的命令是:

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/. 

錯誤我: 警告:標識文件myAmazonKey.pem無法訪問:沒有這樣的文件或目錄。 權限被拒絕(公鑰)。 失去連接

我的兩個myAmazonkey.pem和phpMyAdmin的-3.4.5-全languages.tar.gz都在下載,所以後來我試圖

scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/. 

和錯誤我: 警告:身份文件/User/Hello_Kitty22/Downloads/myAmazonkey.pem無法訪問:無此文件或目錄。 權限被拒絕(公鑰)。 丟失連接

任何人都可以請告訴我如何解決我的問題?

p.s.有一個類似的帖子:scp (secure copy) to ec2 instance without password 但它不回答我的問題。

+0

我覺得當我啓動我的Amazon實例在線時,我無法訪問我的本地文件下載更多 – HoKy22 2012-07-09 01:13:54

回答

255

嘗試指定用戶是ec2-user,例如

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/. 

參見Connecting to Linux/UNIX Instances Using SSH

+0

非常感謝,效果很好:) – ilight 2013-03-20 16:41:42

+8

工程很棒。請注意,如果您正在運行ubuntu實例,則您的用戶默認用戶可能是「ubuntu」。 – RussellStewart 2013-10-29 19:58:55

+0

當然複製到/可能無法正常工作。感謝您的啓發! – dnuske 2014-03-30 16:13:13

0

檢查.pem文件的權限...... openssh通常不喜歡世界上可讀的私鑰,並且會失敗(iir,scp在爲用戶提供反饋方面做得不好)。

您可以簡單地將該密鑰ssh與AWS主機配合使用嗎?

+0

是的,我可以SSH密鑰給我的AWS主機。事實上,我遇到的問題是,我在亞馬遜主機上(通過SSH),所以當我做CD時,我只能看到我的Amazon服務器上的文件,而不是我保存我的pem文件的本地Mac Downloads目錄。當我退出我的ec2主機時,我只能cd到本地Mac Downloads目錄。但是如果我退出到我的ec2主機,我無法將文件phpMyAdmin上傳到我的ec2服務器。 我的pem的許可是400,我認爲沒關係。 – HoKy22 2012-07-09 04:54:53

+1

非常感謝您的幫助,我在您提出的最後一個問題中發現了我的問題。看來我可以ssh或scp,而不是兩個在一起。 – HoKy22 2012-07-09 21:16:13

+0

感謝提示hellokitty22。我有兩個終端打開一個ssh和一個scp。 – donebizkit 2012-11-07 22:24:29

8

你應該在你本地機器上試試上面的scp命令。

在本地計算機嘗試:

scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/. 
-1

我會用:

scp -i "path to .pem file" "file to be copeide from local machine" [email protected]: 'destination folder to copy file on remote machine'

+2

這正是這個人說他們試過的。 – 2012-10-11 14:22:36

15

第二個目錄是你的目標目的地,不要在那裏使用服務器名稱。換句話說,您不需要提及您當前所在機器的機器名稱。

scp -i /path/to/your/.pemkey -r /copy/from/path [email protected]:/copy/to/path 

-r如果它是目錄。

13

您的密鑰一定不能公開查看SSH的工作。如果需要使用此命令:

chmod 400 yourPublicKeyFile.pem 
2
scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile [email protected]:PATH OF SERVER/serverdirectory 
0

首先,你應該從閱讀改變.pem文件的模式和寫入模式,以只讀模式。這可以只通過一個命令在終端進行sudo chmod 400 your_public_key.pem

4

我有完全相同的問題,我的解決辦法是

scp -i /path/pem -r /path/file/ [email protected] aws dns name:(留空這裏)

,一旦你做了這部分,進入SSH服務器和mv文件到所需的位置

0

我嘗試了上面提到的所有建議,沒有任何工作。我終止了當前的實例,發起了另一個並重復相同的確切過程。這一次沒有問題。有時候,這可能是偏遠艾美的錯。

0

使用SCP將文件從本地機器複製到AWS EC2 Linux實例的過程在this video中按步驟(包括下面提到的要點)進行了介紹。

要使用SCP更正此特定問題:

  1. 你需要指定正確的Linux用戶。從Amazon

    • 對於Amazon Linux,用戶名是ec2-user。
    • 對於RHEL,用戶名是ec2-user或root。
    • 對於Ubuntu,用戶名是ubuntu或root。
    • 對於Centos,用戶名是centos。
    • 對於Fedora,用戶名是ec2-user。
    • 對於SUSE,用戶名是ec2-user或root。
    • 否則,如果ec2-user和root不起作用,請諮詢您的AMI提供商。
  2. 您的私鑰不得公開顯示。運行以下命令,以便只有root用戶才能讀取該文件。

    chmod 400 /path/to/yourKeyFile.pem 
    
1

這裏有一個EC2例如什麼工作的細節:

scp -i /path/to/whatever.pem /users/me/path-to-file [email protected]:~ 

幾個音符爲開端:

  1. 注意給出的三個參數之間的空間之後的-i
  2. scp代表安全傳輸協議。瞭解這些單詞可以更容易地記住命令。
  3. -i指示您需要將.pem文件作爲下一個參數。如果沒有-i,則比不需要.pem
  4. 注意在EC2實例的目的地末尾的:~
相關問題