ユーザ用ツール

サイト用ツール


サイドバー

最新の10件
一覧
unix:openssh:tips

OpenSSH tips

OpenSSHでサポートされない短い鍵を作る(opensslでOpenSSHのRSA鍵を作る)

古い機器で短い鍵しか使えないなどといったときにどうにか出来ないかなって感じのときに?

※この方法はOpenSSH 7.2p2 では行けるらしいが,OpenSSH_7.6p1, OpenSSH 8.1p1ではNGだった. changelogを確認すると7.1/7.1p1からNGぽいけど7.2p1で動く? https://www.openssh.com/txt/release-7.1 * Refusing all RSA keys smaller than 1024 bits (the current minimum is 768 bits).

サポートされていない短い鍵を作ろうとすると作れない

$ ssh-keygen -t rsa -b 768
Invalid RSA key length: minimum is 1024 bits

opensslで作れる

$ openssl genrsa -out key.pem 768
Generating RSA private key, 768 bit long modulus (2 primes)
........+++++++
................................+++++++
e is 65537 (0x010001)

パスフレーズありの場合

$ openssl genrsa -out id_rsa768 -aes256 768 
Generating RSA private key, 768 bit long modulus (2 primes)
..+++++++
..........+++++++
e is 65537 (0x010001)
Enter pass phrase for id_rsa768:
Verifying - Enter pass phrase for id_rsa768:

秘密鍵の確認

$ openssl rsa -text < key.pem

対応する公開鍵を作る
作れなかった.7.2p2では行けるらしいが今回試しているのは8.1p1

$ ssh-keygen -y -f key.pem > key.pub
Load key "key.pem": Invalid key length

公開鍵もopensslで作る

$ openssl rsa -pubout < key.pem > key.pub
writing RSA key

公開鍵の確認

$ openssl rsa -text -pubin < key.pub

しかし実際使おうとすると使えない.

$ ssh -v -i ~/.ssh/key.pem localhost
   :
debug1: Trying private key: /home/matoken/.ssh/key.pem
Load key "/home/matoken/.ssh/key.pem": Invalid key length

ecdsa

検証中

$ openssl ecparam -genkey -name prime256v1
-----BEGIN EC PARAMETERS-----
BggqhkjOPQMBBw==
-----END EC PARAMETERS-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEII/p1OH2ZQ6B6k1CRk1WHr4iPxOuv+N/DzK0znQ6DWpAoAoGCCqGSM49
AwEHoUQDQgAEhO6Eb8d+0awb9XXFBGcBH3C7QPh+LfZDOtpzIeAoiektPlJOVDff
CeV/6xhBDuYuVkdZVen1JIrcP4mjhCpZzA==
-----END EC PRIVATE KEY-----
$ openssl ecparam -genkey -name secp521r1
-----BEGIN EC PARAMETERS-----
BgUrgQQAIw==
-----END EC PARAMETERS-----
-----BEGIN EC PRIVATE KEY-----
MIHcAgEBBEIAt6966Pl0MVeg629y+0SKPtXB1Y0jXVT1SRNrKPIrs22tbkmxGsTZ
H6l3BxbdB9A6cvQggW+hNLO2FhsptOb7/2agBwYFK4EEACOhgYkDgYYABAEm6obx
je5KY9CgO60nvX/2AsTqMyJNcqm5yOXS7Y7CWldu2fvxTz87n5E17hzNb/Eob+VD
5trMIGbUht+gjRwW9AC4seiIdZp9/pVEKVXIgL25IsqvPg7DRKRJXgYloDtpjKPV
mMH96l9GloIV295s/l7VK9MweghstzyxhOiLfNGjtA==
-----END EC PRIVATE KEY-----

OpenSSLでOpenSSHで利用できるed25519形式の鍵

検証中

$ openssl genpkey -algorithm ed25519

Unable to negotiate with <IP> port <PORT>: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-gro

up14-sha1

古いマシンにつなごうとしてアルゴリズムが対応していない.

snippet.bash
$ ssh 192.168.1.182                                                                      
Unable to negotiate with 192.168.1.182 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-gro
up14-sha1                                                 

オプションでアルゴリズムを指定して繋ぐ

snippet.bash
$ ssh -o KexAlgorithms=diffie-hellman-group1-sha1,diffie-hellman-group14-sha1 root@192.168.1.182

繋いでみると Angstrom の OpenSSH 6.0p1 だった

snippet.bash
# ssh -V
OpenSSH_6.0p1, OpenSSL 1.0.1e 11 Feb 2013
# lsb_release -a
Distributor ID: Angstrom
Description:    Angstrom GNU/Linux v2012.12 (Core edition)
Release:        v2012.12
Codename:       Core edition

コメント

コメントを入力. Wiki文法が有効です:
   ____   ___    ____  _      __   ___ 
  /  _/  / _ \  /  _/ | | /| / /  / _ \
 _/ /   / ___/ _/ /   | |/ |/ /  / // /
/___/  /_/    /___/   |__/|__/  /____/
 
unix/openssh/tips.txt · 最終更新: 2021/05/31 18:45 by matoken