Поэтому я подумал о некоторых концепциях именования и в итоге стал таким. Я знаю, что в PuTTy нет соглашения, за исключением .ppk
(Закрытый ключ PuTTy) - так что это не "Вы должны делать это так", это скорее идея, как может выглядеть концепция именования. Так что я решил поделиться этим с вами в любом случае - может быть, это поможет кому-то хотя бы построить свою концепцию.
Что я хочу / не хочу
- Я хочу использовать пары ключей OpenSSH и PuTTy
- Я хочу, чтобы ключи были сразу идентифицируемыми и не могли быть перепутаны - поэтому я хочу идентифицировать
- алгоритм
- если это закрытый или открытый ключ
- если это формат OpenSSH или PuTTy
- Я хочу, чтобы имя было Windows и Unix "совместимым / совместимым" (например, я не хочу пробелов в Linux - даже если это не официальная политика)
- Я не хочу менять все ключи на всех серверах, если что-то (может быть, какая-то проблема безопасности) происходит, поэтому я могу
- не хочу использовать одну и ту же пару ключей для нескольких серверов
- хотите использовать пару ключей только для одной цели (например, целью может быть пользователь, служба или задача)
Поэтому имя должно содержать следующую информацию:
- Информация о назначении, если это (имя пользователя или имя задачи, например)
- Имя сервера, если это ключ конкретного сервера
- Алгоритм
- Это закрытый или открытый ключ?
- Это формат OpenSSH или PuTTy?
Возможная схема имени
Как уже упоминалось, я думаю, что это действительно хорошая идея - придерживаться синтаксиса инструмента ssh-keygen
. Поэтому я использую это (за исключением .pub
для открытых ключей, потому что это расширение файла используется Microsoft Publisher и может неверно интерпретироваться в системах Windows - там также есть собственный значок для MS Publisher) и комбинирую его с соглашением PuTTy. (.ppk
) и условия выше. Поэтому возможная схема имени может быть:
id_<key_algorithm>_<servername>_<purpose>.<format_information>
Со следующими правилами:
- Если это не для определенного сервера, удалите
<servername>
- Если это не для конкретной цели, удалите
<purpose>
- По крайней мере одна информация (
<purpose>
или <servername>
) должна содержаться в имени
Формат информации (OpenSSH/PuTTy и private/public)
PuTTy использует .ppk
для закрытых ключей, а инструмент ssh-keygen
поставляется с .pub
для открытых ключей, который я не хочу использовать из-за MS Publisher. Поэтому я придерживаюсь PuTTys .ppk
, немного отличаюсь от ssh-keygen
s .pub
и использую оба "соглашения" в качестве основы для построения других, близких к этим именам. Таким образом, эта информация добавляется как "расширение файла":
Name of OpenSSH private key: .pk an alternative could be .opk or .ospk
Name of OpenSSH public key: .pubk an alternative could be .opubk or .ospubk
Name of PuTTY private key: .ppk
Name of PuTTy Public Key: .ppubk
Некоторые примеры:
id_rsa_foo_bar.ppk
id_dsa_foo.pk
id_rsa_server01_rsync.pk
id_rsa_server01_rsync.pubk
id_rsa_server01_rsync.ppk
id_rsa_server01_rsync.ppubk