`Отказано в доступе (открытый ключ)` при добавлении ключа в SSH-Agent через скрипт Bash

`Отказано в доступе (открытый ключ)` при добавлении ключа в SSH-Agent через скрипт Bash

На моем мобильном устройстве и Raspberry Pi (по совпадению процессоры AArch и ARM соответственно) ssh-agentпо умолчанию не загружается.

Сначала мне нужно начать ssh-agent:

eval `ssh-agent -s`

Затем я добавляю ключ к агенту:

ssh-add /home/jimjamz/.ssh/myKey

Мне предлагается ввести пароль, я его ввожу. Затем ключ добавляется в агент:

Enter passphrase for /home/jimjamz/.ssh/myKey: 
Identity added: /home/jimjamz/.ssh/myKey (/home/jimjamz/.ssh/myKey)

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

Для удобства я хочу добавить вышеизложенное в скрипт, который запускает агент и добавляет ключ:

#!/bin/bash
eval `ssh-agent -s`
ssh-add /home/jimjamz/.ssh/myKey

Когда я запускаю скрипт, я вижу, что процесс агента начался, и мне предлагается ввести пароль моего закрытого ключа. Я ввожу его правильно, и ключ добавляется к агенту.

Однако при попытке подключиться по ssh к своему удаленному серверу я вижу следующее:

Permission denied (publickey).

Проблема, похоже, в вызове ssh-addвнутри моего скрипта bash. Если я вручную вызываю ssh-addза пределами скрипта, а затем пытаюсь подключиться по ssh к своему удаленному серверу, я могу подключиться.

ssh-addПочему при вызове в скрипте bash не распознается, что ключ уже добавлен ?

Если я запускаю скрипт bash на одной из моих других машин (где ssh-agent уже загружен по умолчанию), ключ, добавленный в скрипт, можно успешно использовать для ssh на удаленном сервере. Похоже, он просто не работает на устройствах, где ssh-agent не запущен автоматически по умолчанию.

Связанный контент