OpenBSDおよびRHELのssh-keygenおよび-Zオプション

OpenBSDおよびRHELのssh-keygenおよび-Zオプション

フォローするSSH証明書のかなり良いテキスト現在、OpenBSDシステムで例をエミュレートしようとしてRHEL 6 openssh-5.3p1-94.el6(約10年前)用に書かれています。

一例ShowはホストCAキーを生成し、ホストのRSAキーに署名します。

ssh-keygen -s ~/.ssh/ca_host_key -I host_name -h -Z host_name.example.com -V -1w:+54w5d /etc/ssh/ssh_host_rsa.pub
Enter passphrase:
Signed host key /root/.ssh/ssh_host_rsa-cert.pub: id "host_name" serial 0 for host_name.example.com valid from 2015-05-15T13:52:29 to 2016-06-08T13:52:29

OpenBSDでこれを試しても出力は出ませんfor host_name.example.com。テキストは言う

この-Zオプションは、この証明書をドメイン内の特定のホストに制限します。

...これについて少し混乱しています。OpenBSD マニュアルssh-keygen(1)-Zオプションはまったく言及されていません。私もssh-keygen文句を言わず、この文書化されていないオプションを受け入れることについて混乱しています。

見ているソースコードssh-keygen-Zオプションはい許可されますが、ホスト名よりも「パスワード形式」(または「パスワード形式」)に関連しているようです(正しいコードを見ていると仮定)。

case 'Z':
    openssh_format_cipher = optarg;
    break;

以前のバージョンのコードを見るといつも「パスワード形式」に関連しています。

OpenSSHリリースノート言及する必要はありません-Z

Q:ssh-keygenRHEL 6のRedHat専用パッチでパッチを適用しましたか(該当するバージョンが関連しているかどうかはわかりませんが、RHEL 7またはRHEL 8用のSSH証明書に関する同等の文書がないようです)-Z。違いますか?

ベストアンサー1

長すぎる博士。最新バージョンのOpenSSHでは、サブジェクト(ホスト名やユーザーなど)を設定する-n代わりにこのオプションを使用する必要があります。-Z

ソースコードを見ると、ssh-keygenその-Zオプションは許可されますが、「パスワード形式」に関連しているようです。

はい、エラーが発生しない理由は、openssh_format_cipher証明書を生成するときに変数が使用されず、パスワードでキーを生成するときにのみ使用されるためです。

キー生成を有効にしてssh-keygen -f ./path -Z some_garbageパスワードを設定すると、エラーメッセージが表示されます。

動作を異ならせるRHEL 6のssh-keygenRedHat関連パッチでパッチされていますか?-Z

はい、昔もそうでした。openssh-5.3p1-ssh-certificates.patchで見ることができますここ:

+               case 'Z':
+                       cert_principals = optarg;
+                       break;
                case 'p':

このパッチは、最新のrpmでは使用されなくなりました。

おすすめ記事