'\" t .\" Title: ssh-tpm-keygen .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-08-10 .\" Manual: ssh-tpm-keygen manual .\" Source: ssh-tpm-agent v0.9.0 .\" Language: Persian .\" .TH "SSH\-TPM\-KEYGEN" "1" "2026-08-10" "ssh\-tpm\-agent v0.9.0" "ssh\-tpm\-keygen manual" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" ssh-tpm-keygen \- ابزار ایجاد کلید برای ssh\-tpm\-agent .SH "خلاصه دستور (SYNOPSIS)" .sp \fBssh\-tpm\-keygen\fP [\fIOPTIONS\fP].\|.\|. .sp \fBssh\-tpm\-keygen\fP \fB\-\-wrap\fP \fIPATH\fP \fB\-\-wrap\-with\fP \fIPATH\fP .sp \fBssh\-tpm\-keygen\fP \fB\-\-import\fP \fIPATH\fP .sp \fBssh\-tpm\-keygen\fP \fB\-\-print\-pubkey\fP \fIPATH\fP .sp \fBssh\-tpm\-keygen\fP \fB\-\-supported\fP .sp \fBssh\-tpm\-keygen\fP \fB\-p\fP [\fB\-f\fP \fIkeyfile\fP] [\fB\-P\fP \fIold passphrase\fP] [\fB\-N\fP \fInew passphrase\fP] .sp \fBssh\-tpm\-keygen\fP \fB\-A\fP [\fB\-f\fP \fIpath prefix\fP] [\fB\-\-hierarchy\fP \fIhierarchy\fP] .SH "توضیحات (DESCRIPTION)" .sp \fBssh\-tpm\-keygen\fP برنامه‌ای است که امکان ایجاد کلیدهای بسته‌بندی‌شده با TPM را برای \fBssh\-tpm\-agent\fP فراهم می‌کند. .SH "گزینه‌ها (OPTIONS)" .sp \fB\-A\fP .RS 4 تولید کلیدهای میزبان (host keys) برای تمام انواع کلید (rsa و ecdsa). .RE .sp \fB\-b\fP \fIBITS\fP .RS 4 تعداد بیت‌های کلید برای ایجاد. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} rsa: 2048 (پیش‌فرض) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} ecdsa: 256 (پیش‌فرض) | 384 | 521 .RE .RE .sp \fB\-C\fP \fICOMMENT\fP .RS 4 ارائه یک یادداشت (comment) همراه با کلید. .RE .sp \fB\-f\fP \fIPATH\fP .RS 4 مسیر فایل کلید خروجی. .RE .sp \fB\-N\fP \fIPASSPHRASE\fP .RS 4 عبارت‌عبور (passphrase) برای کلید. .RE .sp \fB\-o\fP, \fB\-\-owner\-password\fP \fIPASSPHRASE\fP .RS 4 درخواست گذرواژه مالک (owner password). .RE .sp \fB\-t\fP [\fIecdsa\fP | \fIrsa\fP] .RS 4 مشخص کردن نوع کلید برای ایجاد. پیش‌فرض ecdsa است. .RE .sp \fB\-I\fP, \fB\-\-import\fP \fIPATH\fP .RS 4 وارد کردن (import) کلید موجود به ssh\-tpm\-agent. .RE .sp \fB\-\-parent\-handle\fP \fIHIERARCHY\fP .RS 4 والد (parent) برای کلید TPM. می‌تواند یک سلسله‌مراتب (hierarchy) یا یک هندل پایدار (persistent handle) باشد. .sp سلسله‌مراتب‌های موجود: \- owner، o (پیش‌فرض) \- endorsement، e \- null، n \- platform، p .RE .sp \fB\-\-print\-pubkey\fP \fIPATH\fP .RS 4 چاپ کلید عمومی با دریافت یک کلید خصوصی TPM. .RE .sp \fB\-\-supported\fP .RS 4 فهرست کردن انواع کلیدهای پشتیبانی‌شده توسط TPM. .RE .sp \fB\-\-hierarchy\fP \fIHIERARCHY\fP .RS 4 ایجاد یک کلید عمومی. تنها می‌تواند همراه با \fB\-A\fP استفاده شود. .sp برای نحوه استفاده، بخش \fBHierarchy Keys\fP در \fBssh\-tpm\-agent\fP(1) را ببینید. .sp سلسله‌مراتب‌های موجود: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} owner, o .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} endorsement, e .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} null, n .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} platform, p .RE .RE .sp \fB\-\-wrap\fP \fIPATH\fP .RS 4 یک کلید SSH جهت بسته‌بندی برای وارد کردن در ماشین راه دور. .RE .sp \fB\-\-wrap\-with\fP \fIPATH\fP .RS 4 کلید والد برای بسته‌بندی کلید SSH با آن. .RE .SH "مثال‌ها (EXAMPLES)" .SS "ایجاد کلید" .sp ایجاد یک کلید با \fBssh\-tpm\-keygen\fP. .sp .if n .RS 4 .nf .fam C $ ssh\-tpm\-keygen Generating a sealed public/private ecdsa key pair. Enter file in which to save the key (/home/user/.ssh/id_ecdsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_ecdsa.tpm Your public key has been saved in /home/user/.ssh/id_ecdsa.pub The key fingerprint is: SHA256:NCMJJ2La+q5tGcngQUQvEOJP3gPH8bMP98wJOEMV564 The key\*(Aqs randomart image is the color of television, tuned to a dead channel. .fam .fi .if n .RE .sp .if n .RS 4 .nf .fam C $ cat /home/user/.ssh/id_ecdsa.pub ecdsa\-sha2\-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOTOsMXyjTc1wiQSKhRiNhKFsHJNLzLk2r4foXPLQYKR0tuXIBMTQuMmc7OiTgNMvIjMrcb9adgGdT3s+GkNi1g= .fam .fi .if n .RE .SS "وارد کردن کلید موجود" .sp در صورتی که بخواهید از کلید در یک فضای ذخیره‌سازی امن راه دور پشتیبان تهیه کنید و هم‌زمان به‌طور روزمره از طریق TPM از آن استفاده نمایید، مفید است. .sp یک کلید ایجاد کنید، یا از یک کلید موجود استفاده نمایید. .sp .if n .RS 4 .nf .fam C $ ssh\-keygen \-t ecdsa \-f id_ecdsa Generating public/private ecdsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in id_ecdsa Your public key has been saved in id_ecdsa.pub The key fingerprint is: SHA256:bDn2EpX6XRX5ADXQSuTq+uUyia/eV3Z6MW+UtxjnXvU user@localhost The key\*(Aqs randomart image is: +\-\-\-[ECDSA 256]\-\-\-+ |\& .+=o..| |\& o. oo.| |\& o... .o| |\& . + ..\& ..| |\& S .\& . o| |\& o * . oo=*| |\& ..+.oo=+E| |\& .++o...o=| |\& .++++. .+ | +\-\-\-\-[SHA256]\-\-\-\-\-+ .fam .fi .if n .RE .sp کلید را با استفاده از سوییچ \f(CR\-\-import\fP وارد کنید. .sp .if n .RS 4 .nf .fam C $ ssh\-tpm\-keygen \-\-import id_ecdsa Sealing an existing public/private ecdsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in id_ecdsa.tpm The key fingerprint is: SHA256:bDn2EpX6XRX5ADXQSuTq+uUyia/eV3Z6MW+UtxjnXvU The key\*(Aqs randomart image is the color of television, tuned to a dead channel. .fam .fi .if n .RE .SS "ایجاد و بسته‌بندی کلید خصوصی برای ماشین کلاینت روی سرور راه دور" .sp در سمت کلاینت یک کلید اصلی (primary key) تحت یک سلسله‌مراتب ایجاد کنید. این مثال از سلسله‌مراتب owner به همراه یک SRK استفاده خواهد کرد. .sp فایل خروجی \f(CRsrk.pem\fP باید به سمت راه دور که کلید را ایجاد می‌کند منتقل شود. این کار می‌تواند به عنوان بخشی از آماده‌سازی (provisioning) کلاینت انجام پذیرد. .sp .if n .RS 4 .nf .fam C $ tpm2_createprimary \-C o \-G ecc \-g sha256 \-c prim.ctx \-a \*(Aqrestricted|decrypt|fixedtpm|fixedparent|sensitivedataorigin|userwithauth|noda\*(Aq \-f pem \-o srk.pem .fam .fi .if n .RE .sp در سمت راه دور یک کلید SSH از نوع p256 بدون گذرواژه ایجاد می‌کنیم و آن را با استفاده از \f(CRssh\-tpm\-keygen\fP به کمک \f(CRsrk.pem\fP دریافتی از سمت کلاینت بسته‌بندی می‌نماییم. .sp .if n .RS 4 .nf .fam C $ ssh\-keygen \-t ecdsa \-b 256 \-N "" \-f ./ecdsa.key .fam .fi .if n .RE .sp یا با openssl: .sp .if n .RS 4 .nf .fam C $ openssl genpkey \-algorithm EC \-pkeyopt ec_paramgen_curve:prime256v1 \-out ecdsa.key .fam .fi .if n .RE .sp بسته‌بندی با ssh\-tpm\-keygen: .sp .if n .RS 4 .nf .fam C $ ssh\-tpm\-keygen \-\-wrap\-with srk.pub \-\-wrap ecdsa.key \-f wrapped_id_ecdsa .fam .fi .if n .RE .sp در سمت کلاینت می‌توانیم \f(CRwrapped_id_ecdsa\fP را به یک کلید قابل بارگذاری بازگشایی (unwrap) کنیم. .sp .if n .RS 4 .nf .fam C $ ssh\-tpm\-keygen \-\-import ./wrapped_id_ecdsa.tpm \-\-output id_ecdsa.tpm $ ssh\-tpm\-add id_ecdsa.tpm .fam .fi .if n .RE .SH "فایل‌ها (FILES)" .sp \fI~/ssh/id_rsa.tpm\fP, \fI~/ssh/id_ecdsa.tpm\fP .RS 4 شامل کلیدهای خصوصی ssh مورد استفاده توسط \fBssh\-tpm\-agent\fP است. این‌ها فایل‌های کلید TPM 2.0 TSS هستند و به‌طور امن توسط TPM بسته‌بندی شده‌اند. آن‌ها را می‌توان به‌صورت عمومی به اشتراک گذاشت زیرا فقط توسط همان TPM که روی آن ایجاد شده‌اند قابل استفاده هستند. با این حال احتمالاً بهتر است این کار را انجام ندهید. .RE .sp \fI~/ssh/id_rsa.pub\fP, \fI~/ssh/id_ecdsa.pub\fP .RS 4 شامل کلیدهای عمومی ssh است. این فایل‌ها می‌توانند به‌صورت عمومی به اشتراک گذاشته شوند و قالبی مشابه با موارد ایجادشده توسط \fBssh\-keygen\fP(1) دارند. .RE .SH "همچنین ببینید (SEE ALSO)" .sp \fBssh\-agent\fP(1), \fBssh\fP(1), \fBssh\-tpm\-keygen\fP(1), \fBssh\-keygen\fP(1) .SH "نکات، استانداردها و موارد دیگر (NOTES, STANDARDS AND OTHER)" .sp .URL "https://www.hansenpartnership.com/draft\-bottomley\-tpm2\-keys.html" "مشخصات ASN.1 برای فایل‌های کلید TPM 2.0" ""