
Я работаю в команде с двумя другими парнями. У всех нас есть доступ к серверу с нашими личными ключами SSH, и мы можем напрямую заходить на сервер. Мы используем ForwardAgent, точнее, у всех троих есть что-то вроде этого в наших ~/.ssh/config
(единственное отличие в том, что у меня есть id_rsa_osx
, а у них есть id_rsa
):
Host api1.domain.com
User deployer
Port 10000
ForwardAgent yes
PreferredAuthentications publickey
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa_osx
Итак, печатая, ssh api1.domain.com
мы все имеем доступ к серверу как пользователь-развертыватель. Дело в том, что я единственный, у кого нет доступа к github напрямую с сервера. Итак, когда я печатаю, я получаю Для других ребят это работает правильно.ssh -T [email protected]
Permission denied (publickey).
У меня есть доступ к github с моей локальной машины с помощью этого ключа, и моя конфигурация для github такая:
Host github.com
User git
PreferredAuthentications publickey
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa_osx
Я также попробовал эту команду echo "$SSH_AUTH_SOCK"
и вернул /tmp/ssh-yz4zn4fqMf/agent.16068
. У меня есть ключ на github, и я также попытался добавить другой ключ с тем же результатом. У меня совсем нет идей, что еще мне попробовать?
решение1
Проблема была в том, что я не добавил свой ключ в ssh-agent. Я ввел его, ssh-add my_key_path
и он заработал (чтобы проверить, добавили ли вы его, введите ssh-add -l
).