ssh-agent: не пересылать аутентификацию для всего набора ключей

10

У меня есть два закрытых ключа SSH:

  • один для доступа к моим личным машинам,
  • один для доступа к серверам на моей работе .

Я добавляю эти два ключа в мой ssh-агент с помощью ssh-add.

Теперь, когда я это сделаю, ssh -A root@jobsrvя бы хотел перенаправить аутентификацию агента только для моего рабочего ключа (тот, который я использую для подключения jobsrv).

Я хочу этого, потому что любой, имеющий root-доступ, jobsrvможет использовать моего агента для аутентификации на моих личных машинах.

Есть ли способ добиться этой изоляции?

Totor
источник
Вы проверили опцию -i на странице руководства по ssh?
Человек
1
@Stillakid да, ssh -A -i myjobkey_rsa root@jobsrvвсе еще позволяет машине jobsrv получать доступ к моему локальному агенту машины и проходить аутентификацию на моем персональном сервере с помощью другого (личного) ключа ...
Totor
также проверил ssh-keysign?
Человек,

Ответы:

2

Чтобы принудительно ssh(1)использовать определенный ключ, даже если он ssh-agent(1)предлагает несколько ключей , используйте директиву IdentityFileand , например:IdentitiesOnly~/.ssh/config

Host example.com
    IdentityFile ~/.ssh/keys/special.pem
    IdentitiesOnly yes

Смотрите ssh_config(5)подробности.

mjhennig
источник
Это не работает . IdentitiesOnlyприменяется при попытке подключения к удаленному серверу. После подключения, если -Aвключена переадресация агента, пересылается весь набор ключей.
Тотор
Брелок не передан. Это запрос авторизации, который пересылается в .
Багамат
@bahamat Конечно, моя ошибка. Тем не менее, это решение не работает.
Тотор
2

К сожалению, я полагаю, что в настоящее время невозможно легко добиться этого . Можно использовать двух агентов (по одному для каждого ключа), чтобы не было агента, который удерживал бы все ключи. Но с этим было бы довольно обременительно работать.

Вот почему отчет об ошибке (улучшение) был открыт. Есть и такой же отчет .

Totor
источник