우리는 여러 개발 시스템을 보유하고 있습니다(각각 서로 다른 응용 프로그램, 환경이 있을 수 있지만 모두 Ubuntu 14.04입니다).
이제 새 구성원이 생기면 모든 단일 컴퓨터에서 해당 구성원에 대한 계정을 만들어야 하고 Authorized_keys가 모두 동일한지 확인해야 합니다.
계정을 한 번만 생성하고 SSH 키를 사용하여 모든 서버에 로그인할 수 있는 방법이나 메커니즘이 있습니까?
답변1
심플한 디자인으로 한번 해봤습니다.
- 개발 및 테스트 환경의 /home 파티션을 동일한 디스크에 마운트했습니다.
- 이렇게 하면 사용자 홈 디렉터리는 개발 서버에 있든 테스트 서버에 있든 동일합니다.
위의 아이디어는 효과가 있었지만 소수의 서버와 합리적으로 정통한 사용자가 있었기 때문에 권장하지 않습니다.
문제:
1) 사용자가 Dev의 홈 디렉터리에서 무언가를 삭제할 때 테스트에서도 해당 항목이 지워지고 있다는 사실을 알지 못한다는 점을 고려하면 이는 매우 나쁜 생각입니다.
2) 상위 환경에 로그인할 수 있는 사람을 제어할 수 없기 때문에 접근 제어가 까다로워집니다.
그래서 제가 선택한 접근 방식은 스크립트를 사용하여 필요에 따라 환경/서버 간에 계정 설정을 이동하는 것이었습니다.
tar cvf - /home/<username> | ssh <servername> " (cd /home/<username> ; tar xvf - ) "
답변2
더 나은 관리 방법은 사용자 생성, 인증 키 또는 반복적인 작업을 자동화하고 작업을 쉽게 만드는 데 도움이 되는 Puppet이나 Chef와 같은 구성 관리 도구를 사용하는 것입니다. 즉, 모든 서버에서 루트 사용자에 대한 로그인 비밀번호가 없으면 ssh <host> "useradd [options] username"
.
https://puppetlabs.com