나는 팔로우한다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-keygen
RHEL 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-keygen
RedHat 관련 패치로 패치 되었습니까?-Z
네, 예전에도 그랬습니다. openssh-5.3p1-ssh-certificates.patch
에서 보실 수 있습니다여기:
+ case 'Z':
+ cert_principals = optarg;
+ break;
case 'p':
이 패치는 더 이상 최신 rpm에서 사용되지 않습니다.
답변2
@mosvy의 답변은 댓글보다 조금 길기 때문에 확장됩니다.
RHEL6은 2009년부터 OpenSSH 5.3p1과 함께 출시되었으며(원래는 이전 버전인 것 같지만 지금은 가지고 있지 않습니다) 수년에 걸쳐 SSH용 기능을 포함하여 업스트림에서 새로운 기능이 구현되거나 백포트되었습니다. 인증서.
그러나 그것은 훨씬 나중이었다. NSS를 통해 스마트 카드에 대한 수년간의 초기 지원(2007년 이후의 변경 로그) 이후 NSS가 작동 방식을 설명합니다 -n
.ssh-keygen
이 2008년 블로그 게시물에서(이 패치가 업스트림에 제안되었는지, 왜 거부되었는지 알 수 없지만 이제 표준 PKCS#11 인터페이스를 통해 스마트 카드가 직접 사용됩니다.) 자세한 내용은 이전 답변에 링크된 소스 rpm의 openssh-5.3-p1-nss-keys.patch를 참조하세요.
OpenSSH 5.4p1이 출시되고 인증서를 지원한 지 얼마 지나지 않아 이 특정 기능을 백포트하기로 결정했으며(2013년으로 거슬러 올라가는 변경 로그에서) 기존 스위치(이제 ssh-keygen
모든 알파벳 문자를 사용하는 스위치) 와 충돌합니다. 잘 기억하세요), 이 기능을 백포트하는 유일한 방법은 옵션을 다른 스위치로 이동하고(기존 시나리오는 사소한 업데이트로 중단될 수 없음) 문서화하는 것이었습니다.
그게 전부입니다.