web-dev-qa-db-ja.com

AES-256-CBCでSSHペアを生成する

ssh-keygenでsshペアを作成するのは簡単ですが、AES-256-CBCを使用できるsshペアをssh-keygenで生成するにはどうすればよいですか?

デフォルトは常にAES-128-CBCですが、すでに別のパラメーターを試しましたが、次のように機能しませんでした。

ssh-keygen -b 4096 -t rsa -Z aes-256-cbc

しかし、それらは機能しませんでした。

6
Neoon

ssh-keygenを使用する場合、aesが使用するキーを生成するではないaes対称暗号であるため、その鍵はではなくペアで来ます。通信の両端で同じキーを使用します。

Ssh-keygenによって生成された鍵は、認証に 公開鍵暗号 を使用します。 ssh-keygenマニュアルから:

 ssh-keygen generates, manages and converts authentication keys for
 ssh(1).  ssh-keygen can create RSA keys for use by SSH protocol version 1
 and DSA, ECDSA, Ed25519 or RSA keys for use by SSH protocol version 2.

sshマニュアルから:

 Public key authentication works as follows: The scheme is based on
 public-key cryptography, using cryptosystems where encryption and
 decryption are done using separate keys, and it is unfeasible to derive
 the decryption key from the encryption key.  The idea is that each user
 creates a public/private key pair for authentication purposes.  The
 server knows the public key, and only the user knows the private key.
 ssh implements public key authentication protocol automatically, using
 one of the DSA, ECDSA, Ed25519 or RSA algorithms.

公開鍵暗号の問題は、非常に遅いことです。対称鍵暗号化ははるかに高速であり、実際のデータ転送のためにsshによって使用されます。対称暗号化に使用されるキーは、接続が確立された後にオンザフライで生成されます(sshdマニュアルから引用):

 For protocol 2, forward security is provided through a Diffie-Hellman key
 agreement.  This key agreement results in a shared session key.  The rest
 of the session is encrypted using a symmetric cipher, currently 128-bit
 AES, Blowfish, 3DES, CAST128, Arcfour, 192-bit AES, or 256-bit AES.  The
 client selects the encryption algorithm to use from those offered by the
 server.  Additionally, session integrity is provided through a
 cryptographic message authentication code (hmac-md5, hmac-sha1, umac-64,
 umac-128, hmac-ripemd160, hmac-sha2-256 or hmac-sha2-512).

aes256-cbcを使用する場合は、-cオプションを使用してコマンドラインで指定する必要があります。最も基本的な形式では、次のようになります。

$ ssh -c aes256-cbc user@Host

また、カンマ区切りのリストを使用して、優先する暗号の選択をssh_configで指定することもできます。ただし、デフォルトをいじくり回すことは、専門家に任せるのが最善であるためお勧めしません。 OpenSSH開発者がデフォルトを選択する際に考慮した多くの考慮事項と長年の経験があります。

6
sshh

Ssh接続の秘密鍵/公開鍵の生成に使用される暗号を変更したい場合は、次のようにできます。

openssl genrsa -aes256 -out private.key 4096
ssh-keygen -y -f private.key > public.key.pub

ssh接続で利用可能な暗号を参照してください:

ssh -Q cipher

デーモン(sshd-接続するリモートホスト)も、接続する暗号のタイプをサポートする必要があります。あなたのsshdで使用される暗号は、リモートホストにもインストールされているsshと同じだと思います。そうやってssh -Q cipherリモートホストで、sshdがサポートする暗号を確認できます。

PS:opensslで公開鍵を生成しようとすると、形式が異なるだけでなく、エンコードも異なるため、ssh接続では機能しません。 2つの間の変換方法を示す this post があります。

0
Rinaldi Segecin