У меня есть два закрытых ключа SSH:
- один для доступа к моим личным машинам,
- один для доступа к серверам на моей работе .
Я добавляю эти два ключа в мой ssh-агент с помощью ssh-add
.
Теперь, когда я это сделаю, ssh -A root@jobsrv
я бы хотел перенаправить аутентификацию агента только для моего рабочего ключа (тот, который я использую для подключения jobsrv
).
Я хочу этого, потому что любой, имеющий root-доступ, jobsrv
может использовать моего агента для аутентификации на моих личных машинах.
Есть ли способ добиться этой изоляции?
ssh -A -i myjobkey_rsa root@jobsrv
все еще позволяет машине jobsrv получать доступ к моему локальному агенту машины и проходить аутентификацию на моем персональном сервере с помощью другого (личного) ключа ...Ответы:
Чтобы принудительно
ssh(1)
использовать определенный ключ, даже если онssh-agent(1)
предлагает несколько ключей , используйте директивуIdentityFile
and , например:IdentitiesOnly
~/.ssh/config
Смотрите
ssh_config(5)
подробности.источник
IdentitiesOnly
применяется при попытке подключения к удаленному серверу. После подключения, если-A
включена переадресация агента, пересылается весь набор ключей.К сожалению, я полагаю, что в настоящее время невозможно легко добиться этого . Можно использовать двух агентов (по одному для каждого ключа), чтобы не было агента, который удерживал бы все ключи. Но с этим было бы довольно обременительно работать.
Вот почему отчет об ошибке (улучшение) был открыт. Есть и такой же отчет .
источник