1

У меня есть несколько хостов в ~/.ssh/config, и они отлично работают с локальной машины, но удаленная машина не знает этих хостов.

Host A
    HostName github.com
    IdentityFile ~/.ssh/A_rsa
Host B
    HostName github.com
    IdentityFile ~/.ssh/B_rsa
Host remotemachine.com
    ForwardAgent yes

От localhost:

$ ssh -T git@A
Hi A! You've successfully authenticated, ...
$ ssh -T git@B
Hi B! You've successfully authenticated, ...

С удаленного хоста:

$ ssh remotemachine
$ ssh-add -l
  ... both keys present ...
$ ssh -T git@B
ssh: Could not resolve hostname B: Name or service not known
$ ssh -T git@github.com
Hi A! You've successfully authenticated, ...

Как использовать ключ B на удаленной машине?

Тем не менее, с локальной машины я могу сделать ssh git@B , но на удаленной машине имя хоста B не известно. Похоже, ssh-agent пересылает только ключи, но не хосты. Как сделать так, чтобы хосты тоже были впереди?

Я мог бы также создать ~/.ssh/config на удаленной машине, но что поместить в IdentityFile? Я мог бы использовать $ ssh -i KEYFILE , но что поместить в KEYFILE, если ключи перенаправлены?

1 ответ1

1

Да, единственный способ сделать это - использовать ssh -i или создать ~/.ssh/config на каждой машине с одинаковыми настройками IdentityFile .

Однако достаточно скопировать открытые ключи на другие серверы. То есть не ~/.ssh/A_rsa , а только ~/.ssh/A_rsa.pub . Клиент ssh будет использовать агент для закрытых ключей, точно так же, как это уже используется на вашем локальном компьютере.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .