Назад | Перейти на главную страницу

Может использовать ssh для экземпляра EC2, но не может eb ssh

Когда я пытаюсь подключиться к одному из моих экземпляров EC2 по SSH, он работает нормально:

ssh -i "jason.pem" ec2-user@ec2-34-222-8-173.us-west-2.compute.amazonaws.com
# the above works

Когда я пытаюсь сделать eb ssh это не работает. Как ни странно, до сегодняшнего дня это работало несколько месяцев, а теперь не работает, хотя я не могу представить, чтобы что-то изменилось. Вот и провал:

INFO: Attempting to open port 22.
INFO: SSH port 22 open.
INFO: Running ssh -i /Users/jasonswett/.ssh/jason.pem ec2-user@34.222.8.173
ec2-user@34.222.8.173: Permission denied (publickey).
ERROR: An error occurred while running: ssh.

Как я могу решить эту проблему?

Редактировать:

Я в определенной степени изолировал проблему.

Это работает:

ssh -i 'jason.pem' ec2-user@34.222.8.173

но это не так:

ssh -i /Users/jasonswett/.ssh/jason.pem ec2-user@34.222.8.173

Очевидно, разница заключается в значении того, что передается за -i флаг. К сожалению, это вторая, нерабочая команда, которая eb ssh в настоящее время использует.

Я до сих пор не понимаю, почему это имеет значение или что я могу сделать, чтобы решить эту проблему.

Изменить 2:

По совету @KJH я пробовал запускать каждую из приведенных выше команд с -v флаг.

Это результат для 'jason.pem' версия:

ssh -i 'jason.pem' ec2-user@34.222.8.173 -v                                
Warning: Identity file jason.pem not accessible: No such file or directory.                        
OpenSSH_7.8p1, OpenSSL 1.0.2p  14 Aug 2018                                                         
debug1: Reading configuration data /usr/local/etc/ssh/ssh_config                               
debug1: Connecting to 34.222.8.173 [34.222.8.173] port 22.                                     
debug1: Connection established.
debug1: identity file /Users/jasonswett/.ssh/id_rsa type 0

Итак, что удивительно, причина того, что эта команда работает, заключается в том, что указанный файл идентификации не существует. Очевидно, он возвращается к умолчанию, /Users/jasonswett/.ssh/id_rsa, который действительно существует.

Очевидно, где-то в моей конфигурации EB CLI говорится: "используйте /Users/jasonswett/.ssh/jason.pem для файла идентификации, когда eb ssh выполняется ", и я должен изменить его, чтобы указать /Users/jasonswett/.ssh/id_rsa или ничего не указывать. Пока я не смог найти, где установлена ​​эта директива конфигурации.

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