У меня Windows в качестве основной ОС. Используя проигрыватель VMware, я настраиваю сервер Ubuntu 12.4 в качестве гостевой машины. На сервере Ubuntu есть пользователь "ubuntu".
Я создал новый экземпляр EC2 + ключ настройки pem. На машине с Windows, когда я использую putty + pem key - я могу ssh.
Я добавил ключ pem на свой сервер VMware Ubuntu (/home/ubuntu/.ssh/). Кроме того, я установил следующие разрешения: chmod 700 /home/ubuntu/.ssh
chmod 600 /home/ubuntu/.ssh/*
Через сервер Ubuntu - я безуспешно пытался подключиться к экземпляру ec2 по SSH: ssh ubuntu@EC2_IP Permission denied (publickey)
. Если я явно использую ключ pem, он работает: ssh -i /home/ubuntu/.ssh/NAME.pem ubuntu@EC2_IP
- Обратите внимание, что я должен использовать прямой путь к ключу, иначе я получу
Warning: Identity file NAME.pem not accessible: No such file or directory.
Permission denied (publickey).
Пожалуйста, порекомендуйте. Спасибо!
ssh-add ~ / .ssh / KEY_PAIR_NAME.pem
По умолчанию клиент SSH будет искать ключи с именем id_rsa
, id_dsa
и id_ecdsa
в ~/.ssh/
. Если ваш ключ не назван так, вам нужно либо указать его в командной строке с помощью -i
как вы это делали, или укажите это в конфигурации клиента.
Вы можете добавить что-то подобное к ~/.ssh/config
для автоматического выбора этого ключа при подключении к EC2 по SSH:
Host *.compute-1.amazonaws.com
IdentityFile ~/.ssh/ec2_rsa
Как вы называете свой закрытый ключ? Он должен иметь имя файла id_rsa по умолчанию (переименуйте файл pem в /home/ubuntu/.ssh/id_rsa)
Ты можешь использовать ssh-agent
и ssh-add
чтобы не указывать закрытый ключ явно.
Вы можете поместить команды в свой .profile
или .bashrc
поэтому они запускаются каждый раз, когда вы входите в систему. Вы можете найти пример сценария запуска в нижней части эта почта.
Клиент ssh ищет identify file
на основе конфигурации, установленной в /etc/ssh/ssh_config
. Таким образом, вы можете указать здесь файл идентификации и помните, что в файле конфигурации клиента ssh может быть несколько файлов идентификации. На странице руководства ssh -
-i identity_file
Selects a file from which the identity (private key) for public key authentication is read. The default is ~/.ssh/identity
for protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and ~/.ssh/id_rsa for protocol version 2. Identity files may also
be specified on a per-host basis in the configuration file. It is possible to have multiple -i options (and multiple identiâ
ties specified in configuration files).
Например, для ключа RSA расположение по умолчанию ~ / .ssh / id_rsa. Как предложил Андрей Михальцов, вы можете поместить свой закрытый ключ в / home / ubuntu / ssh / id_rsa и иметь возможность подключаться, не указывая его в командной строке. Если это имя файла уже существует и содержит другой закрытый ключ, вы все равно можете настроить файл конфигурации клиента ssh в IdentityFile
параметр.