openssh: ssh добавляет ключи к агенту по мере необходимости

25

Когда я захожу на сервер по ssh, а мой ключ не загружен в агент, я должен прервать работу, а затем запустить ssh-add, чтобы получить ключ в агент. Я бы хотел, чтобы команда ssh автоматически добавляла ключ, если его нет. Это возможно?

enigmaticPhysicist
источник
У вас есть один ключ для всех ваших целевых хостов, или у вас разные ключи с разными паролями? Используете ли вы замазку из Windows, или вы используете оконную систему на основе X в Linux, или вы используете Mac?
Отеус
Я использую только один ключ и openssh. ssh уже определяет правильный ключ и спрашивает у меня пароль, но после того, как я его введу, ключ не будет сохранен в агент. Это поведение одинаково на всех системах POSIX и Cygwin.
загадочный
Это выглядит похоже? stackoverflow.com/questions/3466626/…
techraf
Нет, это другое. Я хочу вводить пароль ключа каждый раз, когда агент останавливается. Я просто хотел бы, чтобы ssh добавлял ключ к агенту напрямую по мере необходимости, вместо того, чтобы сначала использовать ssh-add.
загадочный

Ответы:

35

AddKeysToAgentВариант делает то , что я хочу. Я могу указать -o AddKeysToAgent=yesв командной строке или добавить AddKeysToAgent yesстроку в моем .ssh/config. Либо работает.

Похоже, это очень недавнее дополнение к openssh, появившееся в выпуске 7.2 от 2016-02-28!

http://www.openssh.com/txt/release-7.2

Спасибо, OpenBSD! Я буду использовать это много .

enigmaticPhysicist
источник
.ssh / config: строка 3: Неверный параметр конфигурации: AddKeysToAgent. Есть предположения? Сервер Unix
trainoasis
Проверьте вашу версию openssh. $ ssh -V. Оно должно быть новее или равно 7.2.
загадочный
Действительно, это было так, спасибо. Тем не менее, просит пароль после relog, хотя. Как автоматизировать git pull через скрипт, например, если вам всегда нужно вводить pass? И я предполагаю, что id_rsa без пароля не очень хорошая идея ...
trainoasis
Вы имеете в виду между логинами ssh или между локальными логинами? Предполагается, что пароль будет удален между локальными логинами.
загадочный
Всякий раз, когда я запускаю скрипт локально, он должен там ssh и запускать git pull и т. Д., Но, конечно, он не может, потому что ему нужен пароль для команд GIT (ssh работает без, потому что pass находится в связке ключей, но команды там, конечно, запрашивают pass)
Trainoasis