크고 혼합된 환경에서 SSH 키 관리(Linux)

크고 혼합된 환경에서 SSH 키 관리(Linux)

내가 일한 모든 회사에서 SSH 키를 관리하는 것은 항상 골치 아픈 일이었습니다. 우리는 그것들을 관리하는 방법이 달랐습니다. 그러나 대부분은 puppet/chef/ansible과 같은 일부 CM 시스템이거나 키의 수동 복사본이거나 심지어 추악한 bash 스크립트였습니다. :D

또한 일부 사람들은 SSH 키 저장소로 LDAP 또는 DB를 사용한다고 들었습니다. 하지만 여전히 서버에 키를 넣거나 삭제하는 일부 CM 도구와 같은 추가 자동화가 필요합니다.

그래서 질문은, 내가 모르는 멋지고 현대적인 방법이 있는가 하는 것입니다. 얼마나 큰 IT 회사(예: Google, Facebook 등)가 키를 처리하고 있나요?

답변1

(메타: IMO 이 질문은 의견 기반이 아닙니다.)

최신 OpenSSH가 설치된 최신 Linux/Unix 버전을 사용하는 경우 OpenSSH 인증서를 사용할 수 있습니다. MFA를 통해 일종의 "티켓" 느낌을 원한다면 임시 OpenSSH 인증서를 발급할 수 있습니다.

OpenSSH 인증서의 요점은 sshd 측에 설치해야 하는 유일한 것은 지시어로 참조되는 SSH-CA의 공개 키라는 것입니다.sshd_config의 TrustedUserCAKeys.

지시문을 사용하여승인된 주체*또한 다른 로컬 사용자 계정에 대한 OpenSSH 인증서의 일련의 주체 이름(기본적으로 사용자 이름)을 허용할 수도 있습니다.

OpenSSH 인증서는 X.509 인증서가 아니며 소스 트리 문서에 지정된 형식이 다릅니다.PROTOCOL.certkeys.

여러 웹페이지에서 사용 방법을 찾을 수 있습니다.ssh-keygenSSH-CA로 공개 키에 서명합니다(예:SSH 인증서 사용).

다단계 인증(LDAP 및 OTP)을 기반으로 임시 사용자 인증서를 발급하기 위해 웹 서비스로 실행하는 고객을 위해 작은 SSH-CA를 구현했습니다.

일반적인 장소에서 여러 오픈 소스 구현을 찾을 수 있습니다. 나는 의도적으로 여기에 목록을 제공하지 않습니다. 왜냐하면 몇 가지를 검토한 후 내 자신의 구현을 구현했기 때문에 특정 구현을 승인하고 싶지 않기 때문입니다. 이는 해당 구현이 작동하지 않는다는 의미는 아닙니다. 그들은 내 특정 고객 요구 사항을 충족하지 못했습니다.

경고:

현재는 다음에서만 작동합니다.오픈SSH또는libssh클라이언트 측에서.퍼티아직은 이를 지원하지 않습니다. 또한 네트워크 장치 및 기타 특수 기기에서는 지원되지 않습니다.

추신: 그럼에도 불구하고 나는 필요한 것을 더 많이 제공할 수 있는 적절한 LDAP 기반 사용자 관리를 사용하는 것을 권장합니다.

관련 정보