ssh-keygen
でsshペアを作成するのは簡単ですが、AES-256-CBCを使用できるsshペアをssh-keygen
で生成するにはどうすればよいですか?
デフォルトは常にAES-128-CBCですが、すでに別のパラメーターを試しましたが、次のように機能しませんでした。
ssh-keygen -b 4096 -t rsa -Z aes-256-cbc
しかし、それらは機能しませんでした。
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開発者がデフォルトを選択する際に考慮した多くの考慮事項と長年の経験があります。
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 があります。