다음 스택을 실행하도록 클라우드 서버를 구성하는 중입니다. Ruby, Passenger, Apache; 우분투 10.04 (루시 Lynx)에서.
에 내가 설정 RSA 키를 관리 할 서버를 쉽게하고자하는 과정에서 root
, 그리고 www-data
내가 할 수있는 ssh
서버에. 내가 좋아하지 않는 것은 그 있었다 www-data
의 .ssh
디렉토리에 앉아 /var/www
있는 아파치의 기본 디렉토리 설정입니다. 아파치가 제대로 구성되지 않으면 .ssh
디렉토리가 노출 될 수 있습니다.
에서 ~/.ssh/authorized_keys
를 변경 하여 파일을 중앙 위치로 이동하는 솔루션을 발견 AuthorizedKeysFile
했습니다 /etc/ssh/sshd_config
. 여기에는 두 가지 전문가가 있습니다. 키를위한 단일 위치이며 잘못된 아파치 구성에 대해 걱정할 필요가 없습니다. 내가 생각할 수있는 단 하나의 단점은 이제 모든 사용자가 서버에서 로그인 할 수 있다는 것입니다 (중앙 키 파일의 이중 칼).
이 구성에서 놓친 것이 있습니까? 과도하게 노출 authorized_keys
되었습니까? 아니면 개별 파일 보다 더 나은 솔루션 입니까?
난 녹색 은 서버 관리에 올 때,하지만 나쁜 일을 나쁜 이름을 호출 할 수 완전히 준비가되어있다. :디
답변
모든 키 파일을 동일한 디렉토리에서 중앙 집중화 할 수 있으며 동일한 파일에서 혼합 할 수 없습니다.
다음 sshd_config
과 같이 파일을 설정 하십시오.
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
서버에서 :
- www-data 키는
/etc/ssh/authorized_keys/www-data
- 루트 키는
/etc/ssh/authorized_keys/root
액세스 권한과 관련하여 다음 설정은 sshd에서 승인합니다.
/etc/ssh/authorized_keys
가 소유 root:root
및 755 키 파일을 소유하는 모드가 있습니다 root:root
및 모드 (644)이있다.
다른 모드는 작동하지만 테스트하지는 않았습니다.
답변
일반적으로 나는 당신이 제안하는 것을하지 않을 것입니다. ~/.ssh/authorized_keys
사용자를 위해 일하는 것과 같은 일반적인 가정 을 어 기고 이미 질문에서 언급 한 문제를 소개합니다. 구현하기 전에 눈부신 문제가 발생하면 솔루션이 이상적이지 않다는 것을 의미합니다.
보안 측면에서 나는 모든 사람이 서비스 계정을 공유하게하는 것이 끔찍한 생각 이라고 생각 합니다. 지금 당장은 여러분뿐입니다. 5 년 동안 관리자가 5 명인 경우 누가 무엇을 변경했는지 알고 감사 로그를 통해 누가 어떤 키를 사용했는지 알기 원할 것입니다.
사람들이 자신으로 로그인하여 sudo
자신의 권한을 에스컬레이션하고 필요한 모든 것을 수행하는 데 사용하는 것이 좋습니다.
여전히 SSH 키를 중앙 집중화하려면 Puppet 또는 radmind 와 같은 배포 시스템을 조사 하여 authorized_keys
파일을 적절한 ~user/.ssh/
디렉토리 에 관리 / 배포 하거나 가정에서 자체 개발 한 솔루션을 해킹하는 것이 좋습니다.
여러 서버로 확장 할 때 이전 버전의 OpenSSH (또는 최신 버전의 OpenSSH 의 지시문 및 해당 스크립트)에 대한 LDAP 공개 키 패치 를 확인 하여 사용자를 중앙 집중화 할 수 있으며 배포 할 필요가 없습니다. 네트워크 전체에서 키를 사용할 수 있지만 실제로는 훨씬 나아질 것입니다.AuthorizedKeysCommand