28

ファイルを ec2 インスタンスに転送しようとしています。私はAmazonのドキュメントに従いました.これは私のコマンドがどのように見えるかです:

scp -i [the key's location] Documents/[the file's location] ec2-user@[public dns]:[home/[destination]]

ここで、すべての変数を適切なものに置き換えました。それは正しいキーであり、アクセス許可は 400 であると確信しています。コマンドを呼び出すと、RSA キーのフィンガープリントが表示され、接続を続行するかどうか尋ねられます。yesと入力すると、次のように返信されます

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

スタックオーバーフローに関する他の同様の質問の多くを見てきましたが、正しい方法が見つかりません。

また、ssh トラフィックはポート 22 で有効になっています。

4

5 に答える 5

22

アマゾンが提供する例は正しいです。フォルダのアクセス許可の問題のようです。コピーしようとしているフォルダーを別のユーザーで作成した場合、または別のユーザーが作成した場合、そのフォルダーにコピーまたは編集する権限がない可能性があります。

sudo 機能がある場合は、自分でアクセスを開いてみることができます。このままにしておくことはお勧めできませんが、次のコマンドを試すことができます。

sudo chmod 777 /folderlocation

これにより、完全な読み取り/書き込み/実行可能アクセス許可が誰にでも付与されます (したがって、777 のままにしないでください) が、scp コマンドをテストしてアクセス許可を除外する機会が得られます。

その後、パーミッションに慣れていない場合は、一読することをお勧めします。これは例です: http://www.tuxfiles.org/linuxhelp/filepermissions.html内部に保持されている情報のタイプに応じて、フォルダーを可能な限りロックダウンすることをお勧めします。

それが原因ではない場合は、他に確認したいことがあります。

  • 「scp -i keyname」コマンドを実行するときに、キーのディレクトリにいますか?
  • 転送元のフォルダを使用する権限がありますか?

幸運を祈ります。

于 2013-07-03T14:08:55.983 に答える
12

ユーザー名に問題がある可能性があります。ファイルを Amazon インスタンスにコピーし、最初に次のコマンドを使用しようとしました。

scp -r -i ../.ssh/Amazon_server_key_pair.pem ./empty.test ec2-user@ec2-xx-yy-zz-tt.compute-1.amazonaws.com:~

エラーが発生しました:許可が拒否されました(公開鍵)。

その後、私のインスタンスは Ubuntu 環境であり、ユーザー user は「ubuntu」であることに気付きました。私のために機能した正しいコマンドは次のとおりです。

scp -r -i ../.ssh/Amazon_server_key_pair.pem ./empty.test ubuntu@ec2-xx-yy-zz-tt.us-west-2.compute.amazonaws.com:~

ファイル「empty.test」は、テキスト「testing ...」を含むテキスト ファイルです。仮想サーバーのアドレスを、インスタンスのパブリック DNS への正しいアドレスに置き換えます。インスタンスの IP を xx.yy.zz.tt に置き換えました。

于 2016-02-20T20:29:41.487 に答える