Я получаю Could not open a connection to your authentication agent
сообщение об ошибке, когда я пытаюсь подключиться с промежуточного сервера к третьему серверу с помощью параметра пересылки агента (-A
) клиента OpenSSH. Первое подключение к промежуточному серверу проходит гладко с использованием ключа, загруженного в ssh-agent
. Сообщение об ошибке отображается при попытке подключения к конечному серверу.
Мой клиент OpenSSH настроен на пересылку с ForwardAgent yes
в ~/.ssh/config
, а на промежуточном сервере AllowAgentForwarding yes
в файле конфигурации демона. Конфигурация клиента не отменяется файлом системного уровня.
Я не использую терминальный мультиплексор, чтобы избежать ошибки, связанной с неустановленными переменными среды. Для запуска агента я использую exec ssh-agent zsh
и убедитесь, что оба SSH_AUTH_SOCK
и SSH_AGENT_PID
присутствуют в местной среде. я использую ssh-add
добавить закрытые ключи для промежуточного и конечного серверов соответственно; Я подтверждаю, что они добавлены с помощью ssh-add -l
.
Все серверы имеют последнюю версию (OpenSSH 5.3), а клиент - OpenSSH 6.2.
Я публикую это здесь, потому что потратил много времени, пытаясь найти решение с помощью Google, читал страницы руководства и консультировался с популярной книгой по SSH, но все безрезультатно.
Ключом к обнаружению проблемы было детальное изучение вывода отладки.
debug1: Remote: Agent forwarding disabled: mkdtemp() failed: Permission denied
Промежуточная машина - это виртуальный сервер (RHEL 6.4), размещенный у облачного провайдера, который использует стек AWS. По причинам, которые я не могу объяснить, это то, какие разрешения на /tmp
каталог был установлен на:
drwxr-x--- 19 727 727 4096 Nov 28 05:30 tmp
Grep'ing через /etc/passwd
Мне не удалось найти пользователя с ID 727.
Исправление таких разрешений решило мои проблемы:
sudo chown 0:0 /tmp
sudo chmod 1777 /tmp
Кто-нибудь может говорить об особом владении /tmp
каталог?