테스트 시스템에서 비밀번호 없는 SSH를 위해 유지하고 싶은 오래된 id_dsa SSH 키가 있지만 최근에는 더 이상 SSH에서 작동하지 않습니다. "최근"에는 SuSE Leap 42.2 -> 42.3 -> 15.0의 업그레이드가 포함됩니다. 내 질문은 다음이 실수인지, 실수인지, 아니면 의도적인 것인지입니다.
b@e:~> openssl version
OpenSSL 1.1.0h-fips 27 Mar 2018
b@e:~> ssh-keygen -tdsa -f id_dsa_test
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_dsa_test.
Your public key has been saved in id_dsa_test.pub.
The key fingerprint is:
SHA256:6FAgJTbbKgccBg06364z2ATph0Zs+8rsmda7njArnk8 b@e
The key's randomart image is:
+---[DSA 1024]----+
|+==.o |
...
|=.%+. |
|=@=Oo |
+----[SHA256]-----+
b@e:~> openssl dsa -text -noout -in id_dsa_test
read DSA key
Private-Key: (1024 bit)
priv:
10:dd:1f:...
aa:af:5b:ad:06
pub:
22:c4:ff:...
52:70:4d:8b:4d:cf:ca:53:2f
Q:
00:82:6f:...
5e:1c:20:03:3d:6b
G:
4d:18:15:...
43:8e:d5:1f:7f:59:f7:e6
지금까지는 괜찮았으나:
b@e:~> ssh-keygen -Lf id_dsa_test
id_dsa_test:1: invalid key: invalid format
id_dsa_test:2: invalid key: invalid format
id_dsa_test:3: invalid key: invalid format
id_dsa_test:4: invalid key: invalid format
id_dsa_test:5: invalid key: invalid format
id_dsa_test:6: invalid key: invalid format
id_dsa_test:7: invalid key: invalid format
id_dsa_test:8: invalid key: invalid format
id_dsa_test:9: invalid key: invalid format
id_dsa_test:10: invalid key: invalid format
id_dsa_test:11: invalid key: invalid format
id_dsa_test:12: invalid key: invalid format
그리고 원래 인증서를 사용하든 새로 생성된 인증서를 사용하든 ssh는 항상 비밀번호 인증으로 대체됩니다.
답변1
ssh-keygen 옵션은 -L
일반 키가 아닌 OpenSSH 인증서와 함께 작동합니다. 이것을 사용해 보면 ssh-keygen -lf id_dsa_test
예상한 결과가 나올 것입니다.
또한 귀하가 발견한 대로 DSA에 대한 지원이 중단되었습니다. 따라서 지금은 DSA를 계속 지원하려면 명시적으로 업데이트해야 하지만, 어느 시점에 OpenSSH는 이러한 키 유형에 대한 지원을 완전히 제거할 계획입니다.
키 유형이 ssh-dss만 포함된 목록으로 바꾸는 대신 기본 목록에 다시 추가되도록 "PubkeyAcceptedKeyTypes +ssh-dss"를 사용하도록 ssh_config 파일을 업데이트해야 합니다. ~/.ssh/config(hosts 블록 아래) 대신 /etc/ssh_config에 추가하는 경우 특히 그렇습니다.
바라보다https://security.stackexchange.com/questions/112802/why-openssh-deprecated-dsa-keys