Къде се съхраняват SSH ключовете в Linux — и как да ги управляваме сигурно
SSH (Secure Shell) е основен инструмент в Linux екосистемата, използван за дистанционен достъп, сигурен трансфер на файлове, автоматизация и управление на сървъри. Докато повечето потребители взаимодействат с SSH чрез командата ssh, зад кулисите SSH разчита на публични и частни ключови двойки за удостоверяване — особено в среди, където безпаролни входове, автоматизация и практики на DevOps са от съществено значение.
Местоположение на съхранение на ключове по подразбиране за SSH
Най-често срещаното място, където се съхраняват SSH ключовете, е:
Това се отнася до директорията .ssh в домашната папка на потребителя, напр.:
Общи файлове в тази директория:
| Файл | Цел |
|---|---|
| id_rsa | Частен ключ по подразбиране (RSA) |
| id_rsa.pub | Съответстващ публичен ключ |
| id_ecdsa, id_ed25519 | Други частни ключове (ECDSA, Ed25519) |
| id_*.pub | Съответстващи публични ключове |
| authorized_keys | Съхранява публични ключове разрешени за свързване |
| known_hosts | Съхранява отпечатъци на сървъри (проверка на ключа на хоста) |
| config | Конфигурация на SSH клиента, специфична за потребителя |
Ако генерирате ключове с ssh-keygen, те се съхраняват тук по подразбиране, освен ако не е посочен път.
Местоположения на ключове за SSH в системата
Ключове на хост (sshd) за SSH сървър
Ключове на системно ниво, използвани от SSH демон (сървърна страна):
Типични файлове:
| Файл | Цел |
|---|---|
| ssh_host_rsa_key | Частен ключ на хоста (RSA) |
| ssh_host_rsa_key.pub | Публичен ключ на хоста |
| ssh_host_ecdsa_key | Частен ключ на хоста ECDSA |
| ssh_host_ed25519_key | Частен ключ на хоста Ed25519 |
Тези ключове се използват за идентифициране на сървера пред клиентите, а не за удостоверяване на потребители.
SSH демонът (sshd) представя публичния ключ на хоста по време на връзката; клиентите го сравняват с ~/.ssh/known_hosts.
Персонализирани местоположения на ключове
Можете да генерирате или използвате SSH ключове от всяко местоположение, но трябва да посочите пътя:
Можете също така да конфигурирате множество ключове чрез ~/.ssh/config:
Къде се използват ключовете?
Изходящи (клиентска страна)
SSH клиентите търсят частни ключове в ~/.ssh/ по подразбиране. Те се използват за иницииране на удостоверяване при свързване към отдалечен сървър.
ssh, scp, rsync през SSH, git (когато се използва SSH отдалечено)
📌 Входящи (сървърна страна)
Сървърът търси публични ключове в:
Този файл изброява кои публични ключове са разрешени да влизат в конкретния потребителски акаунт.
Ако user_a се опита да SSH в сървър като user_b, техният публичен ключ трябва да присъства в ~user_b/.ssh/authorized_keys.
Разрешения — критични за сигурността
Правилни разрешения:
Неправилните разрешения могат да накарат SSH да игнорира вашите ключове или напълно да отхвърли входовете.
Управление на SSH ключове сигурно
Използвайте парола при генериране на частни ключове:
Използвайте ssh-agent за кеширане на отключени ключове в паметта:
- Редовно сменяйте ключовете
- Премахвайте неизползвани или осиротели ключове от “authorized_keys”
- Използвайте отделни ключове за всеки хост/проект
- Избягвайте използването на root ключове в различни среди
Аудит и отстраняване на проблеми
За да видите кой ключ се използва по време на SSH връзка:
Това отпечатва подробни логове, включително кой файл за идентичност е бил опитан.
За да изброите заредените ключове в текущия си агент:
За да премахнете ключ:
Заключение
Разбирането на това къде се съхраняват SSH ключовете в Linux — и как да ги управлявате сигурно — е от съществено значение за системните администратори, разработчиците, инженерите по DevOps и всеки, който работи в среди с множество хостове или потребители.
Като знаете разликата между потребителски ключове, ключове на хост и разрешени ключове, можете:
- Да отстраните проблеми с удостоверяването
- Да настроите сигурни автоматизирани работни потоци
- Да управлявате достъпа между екипи и системи
На производствени системи или облачни платформи (напр. VPS или посветени сървъри), неправилното управление на SSH ключове може да доведе до сериозни уязвимости. Уверете се, че следвате най-добрите практики и редовно извършвате одит на достъпа.
