Чтобы аутентифицировать клиента ssh на сервере с помощью publickey, вы генерируете пару ключей на клиенте, храните закрытый ключ на клиенте и копируете открытый ключ в ваш authorized_keys
файл на сервере, который должен находиться в ~/. ssh
принадлежать вам и иметь разрешения только для владельца (обычно 600 aka rw-------
). Вы не выполнили вторую часть. Если это слишком сложно для вас, во многих системах есть скрипт ssh-copy-id
, который делает это за вас с большим количеством подсказок и проверки ошибок.
Вам не нужен ssh-agent
, потому что ваш ключевой файл находится в месте по умолчанию и не имеет пароля.
Чтобы использовать ssh-agent
, вы должны либо запустить новый процесс под ssh-agent
, такой как новый shell или новый терминал (по своей сути с новым shell), в котором установлены переменные окружения для доступа к процессу агента либо ваш shell eval
вывод от ssh-agent
, чтобы эти переменные окружения были установлены в вашем shell. Вы не сделали ни того, ни другого. Из man-страницы:
Есть два основных способа установки агента: Первый заключается в том, что агент запускает новую подкоманду, в которую экспортируются некоторые переменные окружения. экспортируются, например, ssh-agent xterm &. Второй способ заключается в том, что агент печатает необходимые команды оболочки (может быть сгенерирован синтаксис sh(1) или csh(1)). которые могут быть оценены в вызывающей оболочке, например, eval 'ssh-agent -s' для оболочек типа Bourne, таких как sh(1) или ksh(1), и eval 'ssh-agent -c' для csh(1) и производных. В дальнейшем ssh(1) смотрит на эти переменные и использует их для установления соединения с агентом. соединения с агентом.
Проверьте, установлена ли у вас правильная версия boost:
$ ldd <executable>