Я новачок у клавішах ssh. Чи може хтось пояснити, як працює ssh-agent bash
і ssh-add
працює?
Мені потрібно зрозуміти її внутрішню ситуацію в майбутньому.
Я новачок у клавішах ssh. Чи може хтось пояснити, як працює ssh-agent bash
і ssh-add
працює?
Мені потрібно зрозуміти її внутрішню ситуацію в майбутньому.
Відповіді:
Агент представляє собою програму , яка тримає ключі в пам'яті , так що вам потрібно тільки , щоб розблокувати їх один раз , а НЕ кожен раз. ssh-agent робить це для SSH ключів.
Звичайні методи запуску ssh-агента :
eval `ssh-agent`
- це запускає агент у фоновому режимі та встановлює відповідні змінні середовища для поточного екземпляра оболонки.
( ssh-агент , коли запускається без аргументів, виводить команди, що інтерпретуються вашою оболонкою.)
exec ssh-agent bash
- запускає новий екземпляр bash
оболонки, замінюючи поточний.
(З одним або декількома аргументами ssh-агент нічого не видає, але запускає вказану команду: у цьому випадку bash
оболонку, але технічно це може бути що завгодно.)
Другий спосіб іноді є кращим, оскільки він автоматично вбиває ssh-агент при закритті вікна терміналу. (Починаючи з цього eval
, агент залишатиметься запущеним, але недоступним.)
Однак це запускає лише порожній агент. Щоб зробити його корисним, вам потрібно використовувати ssh-add , який розблоковує ваші ключі (як правило ~/.ssh/id_*
) і завантажує їх в агент, роблячи їх доступними для з'єднань ssh або sftp .
Крім того, ви можете додати деякі клавіші під час початку сеансу.
Відредагуйте ~/.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
значенням.
ssh-add
з "&"? Ви припускаєте, що файли приватного ключа незахищені?