v0.33.0 — SSH CA, Transit RSA/ECDSA, PKI SDK
SSH CA, Transit RSA/ECDSA, PKI SDK
Удостоверяющий центр SSH
Tuck выступает в роли SSH CA: выдаёт подписанные сертификаты пользователям и узлам — без необходимости копировать authorized_keys.
# Настройка CA
tuckcli ssh create-role users \
--key-type=ca --allowed-users=* --ttl=24h
# Выдача сертификата пользователю (SSH подхватит автоматически)
tuckcli ssh sign users --public-key=~/.ssh/id_ed25519.pub --valid-for=8hИнтеграция с OpenSSH: добавить TrustedUserCAKeys /etc/ssh/tuck_ca.pub в sshd_config — все хосты начнут принимать сертификаты, подписанные Tuck.
Transit: RSA-PSS и ECDSA P-256
# Асимметричное подписание
tuckcli transit create-key signing-key --type=ecdsa-p256
tuckcli transit sign signing-key --input="$(echo -n 'data' | base64)"
tuckcli transit verify signing-key --input="..." --signature="..."PKI SDK (pkg/client)
pki := c.PKI()
pki.SetupCA("pki", client.PKICARequest{CommonName: "My Root CA", TTL: "87600h"})
pki.CreateRole("pki", "web", client.PKIRole{AllowedDomains: []string{"example.com"}, MaxTTL: "8760h"})
cert, _ := pki.Issue("pki", "web", client.PKIIssueRequest{CommonName: "api.example.com", TTL: "720h"})Состав изменений
internal/ssh:CAStore, обработчикиsignиverify; типы:Role,SignRequest,SignResultinternal/transit: добавлены типы ключейecdsa-p256иrsa-2048/rsa-4096pkg/client/ssh.go:SSHClient—CreateRole,GetRole,DeleteRole,Sign,GetPublicKey,ListRolespkg/client/pki.go:PKIClient—SetupCA,CreateRole,Issue,Revoke,GetCRLpkg/client/transit.go:TransitClient—Sign,Verify; обновлено шифрование с base64- Новые тесты: SSH — 6/6, PKI — расширен до 8 тестов