Когда я пытаюсь подключиться к одному из моих экземпляров 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
команда работает нормально.