Я боровся з тим самим дозволом, який заперечував помилку, очевидно, через
key_parse_private2: missing begin marker
У моїй ситуації причиною став файл ssh config поточного користувача (~ / .ssh / config).
Використовуючи наступне:
ssh -i ~/myKey.pem ec2-user@<IP address> -v 'exit'
Початковий вихід показав:
debug1: Reading configuration data /home/ec2-user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 56: Applying options for *
debug1: Hostname has changed; re-reading configuration
debug1: Reading configuration data /home/ec2-user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
... тут вирізано багато ліній налагодження ...
debug1: Next authentication method: publickey
debug1: Trying private key: /home/ec2-user/somekey.pem
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Третій рядок вище - там, де була виявлена фактична проблема; однак я шукав повідомлення про налагодження чотири рядки знизу (вгорі) і був введений в оману. Немає проблеми з ключем, але я протестував його та порівняв інші конфігурації.
Мій користувальницький конфігураційний файл ssh скидає хост за допомогою ненавмисного глобального налаштування, як показано нижче. Перша лінія хоста не повинна була коментувати.
$ cat config
StrictHostKeyChecking=no
#Host myAlias
user ec2-user
Hostname bitbucket.org
# IdentityFile ~/.ssh/somekey
# IdentitiesOnly yes
Host my2ndAlias
user myOtherUser
Hostname bitbucket.org
IdentityFile ~/.ssh/my2ndKey
IdentitiesOnly yes
Я сподіваюся, що хтось інший вважає це корисним.