ssh-ключі ssh-agent bash та ssh-add


28

Я новачок у клавішах ssh. Чи може хтось пояснити, як працює ssh-agent bashі ssh-addпрацює?

Мені потрібно зрозуміти її внутрішню ситуацію в майбутньому.


Ви спробували найкращий хіт Google для будь-якого з цих умов?
Даніель Бек

Так. Я не отримав корисної інформації. Моє погане
манешшетті

Відповіді:


44

Агент представляє собою програму , яка тримає ключі в пам'яті , так що вам потрібно тільки , щоб розблокувати їх один раз , а НЕ кожен раз. ssh-agent робить це для SSH ключів.

Звичайні методи запуску ssh-агента :

  • eval `ssh-agent`- це запускає агент у фоновому режимі та встановлює відповідні змінні середовища для поточного екземпляра оболонки.

    ( ssh-агент , коли запускається без аргументів, виводить команди, що інтерпретуються вашою оболонкою.)

  • exec ssh-agent bash- запускає новий екземпляр bashоболонки, замінюючи поточний.

    (З одним або декількома аргументами ssh-агент нічого не видає, але запускає вказану команду: у цьому випадку bashоболонку, але технічно це може бути що завгодно.)

    Другий спосіб іноді є кращим, оскільки він автоматично вбиває ssh-агент при закритті вікна терміналу. (Починаючи з цього eval, агент залишатиметься запущеним, але недоступним.)

Однак це запускає лише порожній агент. Щоб зробити його корисним, вам потрібно використовувати ssh-add , який розблоковує ваші ключі (як правило ~/.ssh/id_*) і завантажує їх в агент, роблячи їх доступними для з'єднань ssh або sftp .


3
Чи є спосіб запустити ssh-агент протягом декількох сеансів bash?
Асим

9

Крім того, ви можете додати деякі клавіші під час початку сеансу.

Відредагуйте ~/.bashrcфайл та додайте:

ssh-add &>/dev/null || eval `ssh-agent` &>/dev/null  # start ssh-agent if not present
[ $? -eq 0 ] && {                                     # ssh-agent has started
ssh-add ~/.ssh/your_private.key1 &>/dev/null        # Load key 1
ssh-add ~/.ssh/your_private.key2 &>/dev/null        # Load key 2
}

Перевірте свої ключі ssh-add -l

Ви можете зупинити поточний сеанс агента ssh ssh-agent -k

Щось знати про ssh-агент та .bashrc - це не завантажувати занадто багато клавіш. Кількість спроб для демона ssh за замовчуванням обмежена 6. Це може бути змінено /etc/ssh/sshd_configзі MaxAuthTriesзначенням.


1
Що з паролем приватного ключа при запуску ssh-addз "&"? Ви припускаєте, що файли приватного ключа незахищені?
Лучано

Код, що подається вище, запитує парольну фразу двічі, один раз під час перевірки наявності ssh-агента та знову після завантаження приватного ключа.
Тапан Чандра
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.