Перенос файла в экземпляр ecaz2 amazon с помощью scp всегда дает мне разрешение на отказ (publickey, gssapi-with-mic)

Я пытаюсь передать файл в экземпляр ec2. Я следил за документацией Amazon, это моя команда выглядела так:

scp -i [the key location] Documents/[the file location] [email protected][public dns]:[home/[destination]]

где я заменил все переменные правильными вещами, я уверен, что это правильный ключ, и у него есть разрешение 400. Когда я вызываю команду, она сообщает мне отпечаток ключа RSA, спрашивает меня, хочу ли я продолжать соединение. Я печатаю да, и он отвечает с помощью

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

Я рассмотрел многие другие подобные вопросы о переполнении стека и не могу найти правильный способ сделать это.

Также на порт 22 включен ssh-трафик.

Ответы

Ответ 1

Приведенный пример amazon является правильным. Это звучит как проблема с правами доступа к папке. Если вы создали папку, которую вы пытаетесь скопировать, с другим пользователем или другим пользователем, созданным ею, скорее всего, у вас нет прав на ее копирование или редактирование.

Если у вас есть способности sudo, вы можете попробовать открыть доступ для себя. Хотя не рекомендуется оставлять этот путь, вы можете попробовать эту команду:

sudo chmod 777 /folderlocation

Это дает всем доступным для чтения/записи/исполняемым разрешениям (следовательно, почему вы не должны оставлять его на уровне 777), но это даст вам возможность протестировать вашу команду scp, чтобы исключить разрешения.

Впоследствии, если вы не знакомы с разрешениями, я предлагаю вам прочитать об этом. это пример: http://www.tuxfiles.org/linuxhelp/filepermissions.html Обычно рекомендуется блокировать папку как можно больше в зависимости от типа информации, хранящейся внутри.

Если это не было причиной некоторых других вещей, которые вы можете проверить:

  • находитесь ли вы в каталоге своего ключа при выполнении команды "scp -i keyname"?
  • У вас есть разрешения на использование папки, с которой вы переходите?

Удачи.

Ответ 2

Проблема может быть именем пользователя. Я скопировал файл в свой экземпляр Amazon и сначала попытался использовать команду:

scp -r -i ../.ssh/Amazon_server_key_pair.pem ./empty.test [email protected]:~

и получил ошибку: Permission denied (publickey).

Затем я понял, что мой экземпляр является средой Ubuntu, а пользователь-пользователь тогда "ubuntu" правильной командой, которая работала для меня, была следующей:

scp -r -i ../.ssh/Amazon_server_key_pair.pem ./empty.test [email protected]:~

Файл "empty.test" - это текстовый файл, содержащий текст "test...". Замените адрес своего виртуального сервера правильным адресом в вашем экземпляре Public DNS. Я заменил ip на свой экземпляр с помощью xx.yy.zz.tt.

Ответ 3

Я должен использовать Ubuntu @вместо ec2-user @, потому что, когда я смотрю в свой терминал на Ubuntu @, попробуйте изменить имя, которое вы видите на своем терминале.

Также вы должны установить разрешение для файла pem на вашем компьютере

chmod 400 /path/my-key-pair.pem

Приведенный ниже код скопирует файл с вашего компьютера в экземпляр Ec2.

scp -i ~/location_of_your_ec2_key_pair.pem ~/location_of_transfer_file/sample.txt [email protected]_your_ec2_instance.compute.amazonaws.com:~/folder_to_which_it_needs_to_be_copied

Приведенный ниже код скопирует файл из экземпляра Ec2 на ваш компьютер

scp -i ~/location_of_your_ec2_key_pair.pem   [email protected]_your_ec2_instance.compute.amazonaws.com:~/location_of_transfer_file/sample.txt ~/folder_to_which_it_needs_to_be_copied

Ответ 4

Возможно, кто-то использует неправильное имя пользователя. Случилось со мной, была та же ошибка msg → Permission denied (publickey, gssapi-keyex, gssapi-with-mic). потерянное соединение

Ответ 5

Я столкнулся с той же проблемой. Надеюсь, это сработает для вас.

scp -rp -i yourfile.pem ~/local_directory [email protected]_url:directory

Разрешение также должно быть правильным, чтобы сделать эту работу.

Ответ 6

Для этого точная команда: scp -i <.pem_file_path> <file_path> <user>@<host>:/<path>