Как ssh ищет закрытый ключ для загрузки?

Я знаю, что он пытается загрузить ~/.ssh/id_rsa и после этого ~./.ssh/id_dsa .

Теперь у меня есть два ключа. Можно ли назвать их так, чтобы ssh непосредственно их подобрал?

Если нет, можно ли его обмануть и поместить второй ключ в файл id_dsa , даже если это ключ rsa ?

1 ответ1

1
  • Если агент SSH работает, ssh пробует все ключи, загруженные в агент.

  • Если указана опция -i file , ssh использует указанный ключ.

  • Если IdentityFile установлен в командной строке или в ~/.ssh/config , ssh использует указанный ключ. (Вы можете указать ключи для имени хоста или домена. См. Справочную страницу ssh_config(5) .)

  • В противном случае он использует жестко закодированный список { id_ecdsa , id_rsa , id_dsa } в каталоге ~/.ssh .

Из них ssh-agent может быть наиболее удобным вариантом - он также устраняет необходимость каждый раз разблокировать закрытый ключ. Используйте ssh-add ~/.ssh/id_dsa для загрузки ключа. Если агент не запущен, запустите его с помощью exec ssh-agent bash или с помощью таких инструментов, как Keychain. (Обычно такие среды, как GNOME, Unity или Mac OS X, должны запускать агент автоматически.)

Если вы решили отказаться от использования ssh-agent и вам нужно использовать разные ключи для разных машин, вы можете отредактировать ~/.ssh/config:

Host one.example.com
    IdentityFile ~/.ssh/id_one
Host two.example.com
    IdentityFile ~/.ssh/id_two
Host *.foo.org
    IdentityFile ~/.ssh/id_foo.org

Обратите внимание, что имя файла не имеет абсолютно никакого значения для ssh ; он будет одинаково относиться к id_dsa и id_asdfghjk . Это означает, что вы можете назвать ключ RSA id_dsa . Однако он не будет принимать два ключа в одном файле.

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