itdevspace.website

Использование ssh-agent для одноразового ввода парольной фразы для ключа

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

Для начала ssh-agent должен быть запущен. Для этого необходимо выполнить команду:

eval `ssh-agent`

Команда запускает ssh-agent и устанавливает определенные переменные окружения для оболочки.

Далее необходимо добавить ключи в ssh-agent. Это можно сделать просто введя команду ssh-add. Без аргументов в агент будет добавлены стандартные приватные ключи ~/.ssh/id_rsa, .ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519, и ~/.ssh/identity. Если необходимо добавить конкретный ключ необходимо просто указать его в качестве аргумента. Например:

ssh-add ~/my_private_key

При этом будет запрошена парольная фраза от ключа. Чтобы убедиться что ключи добавлены выполните команду:

ssh-add -l

Теперь когда ssh-agent запомнил ключ можно подключаться к удаленному хосту без ввода парольной фразы. ssh-agent работает до закрытия текущей командной оболочки. Если открыть новый терминал, то запуск ssh-agent и добавления ключа с помощью ssh-add необходимо повторять снова (несмотря на то что процесс ssh-agent от предыдущей оболочки до сих пор может существовать). Для дополнительной безопасности можно ограничить использование ключа в оболочке временными рамками при помощи опции -t с командой ssh-add:

ssh-add -t 1h