SSH 키를위한 중앙 집중식 관리 시스템?


27

SSH 로그인의 키 기반 관리로 전환하고 전 세계의 액세스 키를 중앙에서 관리 할 수있는 키 관리 시스템이 있는지 궁금합니다.

시스템은 이상적으로 클라이언트 당 키 발급을 허용하고 필요한 경우 서버 시스템 키를 즉시 업데이트하여 취소합니다.

상용 또는 공개 소스와 같은 시스템을 아는 사람이 있습니까?

참고 : 명확히하기 위해, 많은 양의 클라우드 서버 (EC2와 유사한) 및 소량의 서비스 사용자를위한 키 관리가 필요합니다. LDAP + 패치가 아래에 제안하는 방법 일 수 있다고 생각합니다.


7
"개인 키와 클라우드"가 "음료 운전"과 같다고 생각하는 사람은 나뿐입니다. 둘 다 재미있게 만들지 만 결코 함께 가지 않습니다.
mailq

1
"클라우드"는 아마도 잘못된 단어 일 것입니다. 전 세계적으로 일관성있는 중앙 집중식 인증 인 것처럼 들립니다.
voretaq7

안녕. 정확히-우리가 찾는 것.
SyRenity

일부 고객 하이브리드 환경에서이 문제로 어려움을 겪고 있습니다. 클라우드 배포에서 OPenLDAP 또는 중앙 인스턴스를 어디에 보관해야하는지에 대한 질문도 있습니까? 나는 모든 것의 webmin을 키 관리 도구로 사용하고 요리사 요리 책을 사용하여 키를 노드에 동기화했습니다.
Tom H

당신이 (참조 찾고있는 Userify 커버 serverfault.com/questions/647797/...를 )
제이미 슨 베커

답변:


8

이를 수행하는 많은 방법이 있습니다. LDAP 키 저장소는 두 번 언급되었으며 그 작업을 수행 한 한 작동합니다. 그러나 LDAP에는 자체 관리 호기심이 있지만 약간의 학습이 필요합니다.

저는 관리자 인증과 같은 간단한 것들에 대한 최소한의 외부 네트워크 종속성을 가진 단순하고 강력한 서버를 좋아합니다. 따라서 훨씬 강력한 SSH 키 배포 전략에 의존합니다. 모든 사람의 공개 키는 구성 관리 시스템에 보관되며 사용자가 로그인 할 수 있어야하는 경우 키가 추가됩니다. 구성 시스템은 또한 지정되지 않은 키를 제거하는 것을 알고 있으므로 누군가 나가거나 키가 변경되면 키 구성을 제거하는 간단한 문제이며 다음 구성 시스템 실행시 키가 제거됩니다.


이러한 접근 방식은 확실히 좋은 하나이며, 그것은 밖으로 움블 포인트가 서버에서 장점을 가지고로 깨어 및 이벤트 LDAP에서 실행 (접근하는) 다운 - 모든 LDAP-백업 시스템은 (내가 감히해야 해야 에 있습니다) Womble이 설명하는 방식으로 키를 눌렀을 때 최소한 한 명의 사용자. 단점은 사용자를 인증 해제하려면 구성 실행을 수행해야한다는 것입니다. 소수의 인증 된 사용자 만있는 "비상 계정"에는 문제가 없습니다. :) 많은 수의 계정에 대한 더 큰 문제
voretaq7의

1
어쨌든 대량 구성 실행을 트리거 할 수있는 방법이 있어야하므로 계정 변경을 위해 그렇게하지 않아도됩니다.
울다

나는 불행하게도 비즈니스 요구에 동의 / 심성하지 : 편집증 구성 푸시이 일어날 것을 많은 장소 (광산 포함) 지시에 동안 오프 시간 그러나 새로운 직원 / 언제든지 일어날 수있는 직원을 떠나 : - /
voretaq7

1
하루 종일 구성 푸시를 실행할 수 없기 때문에 업무 일 동안 물건을 깨진 상태로 두는 것이 행복합니까? 그것이 일반적이기 때문에 그것이 멍청하지 않다는 것을 의미하지는 않습니다.
울다

2
안녕. 예를 들어 Puppet을 사용하는 것이 좋습니다.
SyRenity

23

키 페어는 사용자가 생성해야합니다.

사용자는 개인 절반을 유지하므로 절대 보지 마십시오. 읽고 / 사용할 수있는 양식의 누군가의 개인 키가있는 경우 보안이 잘못되었습니다.

공개 절반은 원하는 방식으로 웹 양식, 전자 메일, CD를 제공하여 원하는 방식으로 중앙 집중식으로 제공됩니다. 일부 장소는 공개 키를 LDAP에 저장합니다. 다른 사람들 authorized_keys은 배포 시스템을 사용하여 파일을 밀어냅니다 .


내 환경에서 셸 액세스가 필요한 사용자는 공개 키를 제공합니다. 이러한 키는 LDAP 시스템에 추가되며 LDAP 공개 키 패치sshd 를 통해 각 사용자에 대해 나열된 공개 키를 참조하여 인증합니다 . 누군가 추가 키를 추가하거나 기존 키를 해지해야하는 경우 관리자에게 알리면 처리합니다. 결국 우리가 확장함에 따라 사람들이 자신의 공개 키를 회전시킬 수있는 시스템을 구현할 것입니다.

각 사이트에는 한 쌍의 LDAP 서버가 있으며 LDAP 복제를 통해 마스터와 동기화되어 각 위치에서 데이터의 일관성을 유지하고 액세스 할 수 있습니다.


내가 설명한 모든 것은 오픈 소스 소프트웨어로 수행 할 수 있습니다. 같은 일을하는 상용 제품도 있습니다.
사용 가능한 옵션을보다 철저히 조사하고 환경에 가장 적합한 옵션을 결정해야합니다. 더 구체적인 질문이 있으면 더 도움이 될 것입니다.


기본적으로 LDAP와 작동하는 패치 된 OpenSSH와 함께 LDAP 인프라를 사용하는 것이 좋습니다. 이것이 생산에서 얼마나 잘 확장됩니까? 대량의 기계를 지원할 수 있습니까? 소량의 서비스 사용자 만 지원하면됩니다.
SyRenity

1
@SyRenity : LDAP 지원 복제 및 클러스터링 아주 잘 비늘 그렇게
휴 버트 Kario

@SyRenity 이론적으로 무제한의 위치에서 무제한의 컴퓨터를 지원할 수 있습니다 ( "정말 큰 Active Directory 배포"-AD는 기본적으로 일부 유행 액세서리가있는 LDAP입니다). 서비스 사용자의 경우 환경 전반에 걸쳐이를 표준화 /etc/passwd하고 표준화 및 /etc/group파일을
내보내는 것이 좋습니다 (

@ voretaq7 서비스 관리가 구성 관리를 통해 LDAP와 별도로 관리된다는 것을 의미합니까?
SyRenity

@SyRenity yes- LDAP가 작동 중지 된 경우이를 사용하는 서비스에 보다 중요 합니다 . 실패를 계획하면 재난을 경험하게됩니다.
voretaq7

9

키 쌍은 각 사용자의 컴퓨터가 아닌 다른 곳에서 생성되어야합니다. 개인 키는 이러한 이유로 이름이 지정됩니다.

즉, 일종의 중앙 집중식 사용자 공개 키 저장소에 대한 사용 사례를 볼 수 있습니다. 하나의 옵션은 공개 키를 OpenLDAP에 저장하는 것입니다. 최신 버전의 OpenSSH는 LDAP에서 키를 읽을 수 있습니다.


2
LDAP 공개 키가 기본 OpenSSH에 있습니까? LPK 패치 만 알고 있습니다. 보증 할 수 있습니다. 개인 키를 비공개로 유지하기위한 +1도 있습니다.
voretaq7

@ voretaq7 메인 라인으로 병합되는 것을 들었지만 아직 직접 확인하지 않았습니다. 우리는 NFS를 통해 공유 홈 디렉토리를 만들므로 키 배포를 처리합니다.
EEAA

+1 잘 몰랐습니다. 그것은 나에게 많은 문제를 저장할 것입니다. 그것은 이제 살펴볼 것들 목록에 있습니다.
Tom H


1

Userify [1] (내가 일하는 곳), Universal Key Manager [2], SSH Key Box [3] 등과 같은 훌륭한 상용 및 오픈 소스 솔루션이 많이 있습니다. 필요에 따라 그리고 운영을 분산시키는 동안 관리를 중앙 집중화하는 것을 찾고 (서버가 로그인하기 위해 중앙 기관에 의존하지 않도록하십시오.이 경우 서버에 로그인하지 못할 수도 있습니다. LDAP 서버가 다운되었습니다!)

  1. https://userify.com

  2. https://www.ssh.com/products/universal-ssh-key-manager/

  3. https://www.sshkeybox.com

이 경사 토론도 참조하십시오.

https://www.slant.co/topics/8010/~managers-for-ssh-keys

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.