ПРЕДУПРЕЖДЕНИЕ: НЕПРЕРЫВНЫЙ ЧАСТНЫЙ КЛЮЧЕВОЙ ФАЙЛ! при попытке SSH в Amazon EC2 Instance

Я работаю над настройкой Panda на экземпляре Amazon EC2. Вчера вечером я установил свою учетную запись и инструменты и не имел проблем с использованием SSH для взаимодействия с моим собственным личным экземпляром, но сейчас мне не разрешено входить в Panda экземпляр EC2. Начало работы с Panda

Я получаю следующую ошибку:

@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @

Permissions 0644 for '~/.ec2/id_rsa-gsg-keypair' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.

Я chmoded my keypair до 600, чтобы попасть в мой личный экземпляр прошлой ночью, и экспериментировал с длиной, устанавливающей разрешения на 0 и даже генерируя новые ключевые строки, но ничего не работает.

Любая помощь вообще будет большой помощью!


Hm, кажется, что если разрешения не установлены на 777 в каталоге, ec2-run-экземпляры script не могут найти мои ключевые файлы. Я новичок в SSH, поэтому я мог бы что-то игнорировать.

Ответ 1

Я chmoded my keypair до 600, чтобы попасть в мой личный пример прошлой ночью,

И так оно и должно быть.

Из документации EC2 у нас есть "Если вы используете OpenSSH (или любой разумно параноидальный SSH-клиент), то вам, вероятно, понадобится установите разрешения этого файла, чтобы они были доступны только вам." Документация Panda, которую вы ссылаетесь на ссылки на документацию Amazon, но на самом деле не передает, насколько важно все это.

Идея состоит в том, что файлы пары ключей похожи на пароли и должны быть защищены. Таким образом, клиент ssh, который вы используете, требует, чтобы эти файлы были защищены, и только ваша учетная запись может их прочитать.

Настройка каталога на 700 действительно должна быть достаточной, но 777 не повредит, если файлы равны 600.

Любые проблемы, с которыми вы сталкиваетесь, - это клиентская сторона, поэтому обязательно включайте информацию о локальной ОС с любыми последующими вопросами!

Ответ 2

Убедитесь, что для каталога, содержащего файлы секретного ключа, установлено значение 700

chmod 700 ~/.ec2

Ответ 3

Чтобы исправить это, 1) вам понадобится reset права возврата к умолчанию:

sudo chmod 600 ~/.ssh/id_rsa sudo chmod 600 ~/.ssh/id_rsa.pub

Если вы получаете еще одну ошибку: Вы действительно хотите продолжить подключение (да/нет)? да Не удалось добавить хост в список известных хостов (/home/geek/.ssh/known_hosts).

2) Это означает, что разрешения на этот файл также установлены неверно и могут быть скорректированы с помощью этого:

sudo chmod 644 ~/.ssh/known_hosts

3) Наконец, вам может потребоваться также настроить права доступа к каталогам:

sudo chmod 755 ~/.ssh

Это поможет вам вернуться к работе.

Ответ 4

Файл закрытого ключа должен быть защищен. В моем случае я пользовался аутентификацией public_key в течение длительного времени, и я использовал разрешение 600 (rw- --- ---) для закрытого ключа и 644 (rw-r-- r--) и для .ssh в домашней папке у вас будет разрешение 700 (rwx --- ---). Для этого перейдите в домашнюю папку пользователя и выполните следующую команду


Установите разрешение 700 для папки .ssh

chmod 700 .ssh


Установите разрешение 600 для файла закрытого ключа

chmod 600 .ssh/id_rsa


Установите разрешение 644 для файла открытого ключа

chmod 644 .ssh/id_rsa.pub

Ответ 6

Сохраните свой закрытый ключ, открытый ключ, known_hosts в том же каталоге и попробуйте войти, как показано ниже:

ssh -I(small i) "hi.pem" [email protected]**-***-**-***.us-west-2.compute.amazonaws.com
  • Тот же каталог в том смысле, что cd/Users/prince/Desktop. Теперь введите команду ls и вы должны увидеть **.pem **.ppk known_hosts

Примечание: вы должны попытаться войти в тот же каталог, иначе вы получите ошибку отказа в разрешении, поскольку он не может найти файл .pem из вашего текущего каталога.


Если вы хотите иметь возможность SSH из любого каталога, вы можете добавить следующее в файл ~/.ssh/config...

Host your.server
HostName [email protected]**-***-**-***.us-west-2.compute.amazonaws.com
User ec2-user
IdentityFile ~/.ec2/id_rsa-gsg-keypair
IdentitiesOnly yes

Теперь вы можете использовать SSH на вашем сервере независимо от того, где находится каталог, просто набрав ssh your.server (или любое ssh your.server имя, которое вы ставите после "Host").

Ответ 7

В Windows попробуйте использовать git bash и используйте там свои команды Linux. Легкий подход

chmod 400 *****.pem

ssh -i "******.pem" [email protected]

Ответ 8

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

Итак, я предполагаю, что вы можете попробовать ssh с пользователем ec2, но я вспоминаю, что в последнее время большинство AMI в centos используют, например, пользователя centos вместо ec2-user

так что если вы ssh -i file.pem [email protected]_IP скажите, пожалуйста, что вы пытаетесь использовать ssh с правильным именем пользователя, иначе это может быть сильной причиной того, что вы видите такое сообщение об ошибке даже при наличии прав на ваши файлы ~/.ssh/id_rsa или file.pem

Ответ 9

Просто примечание для тех, кто сталкивается с этим:

Если вы пытаетесь использовать SSH с ключом, которым вы поделились, например:

ssh -i/path/to/keyfile.pem [email protected]

Где keyfile.pem - это закрытый/открытый ключ, которым вы поделились, и вы используете его для подключения, убедитесь, что вы сохранили его в ~/.ssh/ и chmod 777.

Попытка использовать файл, когда он был сохранен в другом месте на моей машине, приводила к ошибке OP. Не уверен, что это напрямую связано.

Ответ 10

Измените разрешение на доступ к файлу с помощью команды chmod

sudo chmod 700 keyfile.pem

Ответ 11

Решение состоит в том, чтобы сделать его читаемым только владельцем файла, то есть две последние цифры восьмеричного представления в режиме должны быть равны нулю (например, mode 0400).

OpenSSH проверяет это в authfile.c, в функции с именем sshkey_perm_ok:

/*
 * if a key owned by the user is accessed, then we check the
 * permissions of the file. if the key owned by a different user,
 * then we don't care.
 */
if ((st.st_uid == getuid()) && (st.st_mode & 077) != 0) {
    error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
    error("@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @");
    error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
    error("Permissions 0%3.3o for '%s' are too open.",
        (u_int)st.st_mode & 0777, filename);
    error("It is required that your private key files are NOT accessible by others.");
    error("This private key will be ignored.");
    return SSH_ERR_KEY_BAD_PERMISSIONS;
}

См. первую строку после комментария: он выполняет "побитовое" и "против" режим файла, выбирая все биты в последних двух восьмеричных цифрах (поскольку 07 восьмерично для 0b111, где каждый бит стоит для r/w/x соответственно).

Ответ 12

Я только сделал это, когда я установил разрешения на 400. 600 не разрезал.