키 인증을 사용하는 ssh 연결에서 사용자는 사용하려는 공개 키의 ID를 보냅니다. 그런 다음 서버는 authorized_keys 파일에서 공개 키를 확인합니다.
서버가 authorized_keys 파일에서 해당 ID를 찾지 않고 사용자 이름을 사용하여 다른 소스 (예 : 데이터베이스, 다른 파일, 원격 서버 등)에서 키를 검색하려고합니다.
그렇게 할 수 있습니까?
답변
파일 경로 를 변경하려면 sshd_config 에서 AuthorizedKeysFile 옵션을 지정할 수 있습니다 (서버가 OpenSSH를 실행한다고 가정). 사용자의 홈 디렉토리를 기준으로 여러 경로를 제공하거나 %u
사용자 이름 으로 확장하여 절대 경로를 제공 할 수 있습니다 .
예를 들어, 기본 authorized_keys 위치를 유지하고 / etc에 파일을 추가하려면 다음을 수행하십시오.
AuthorizedKeysFile .ssh/authorized_keys /etc/ssh/users/%u.txt
서버가 OpenSSH 6.2 이상 을 사용하는 경우 외부 명령 을 사용하려면 서버의 sshd_config 파일에서 AuthorizedKeysCommand 를 지정 하여 사용자 정의 프로그램 또는 스크립트를 가리킬 수 있습니다.
이 프로그램은 모든 로그인에서 실행되며 사용자 이름을 명령 줄 매개 변수로 받고 stdout을 통해 해당 사용자의 키 목록 (authorted_keys와 동일한 형식을 사용하여)을 출력해야합니다.
예를 들어 LDAP를 사용하는 경우 SSSD LDAP 클라이언트에는 sss_ssh_authorizedkeys
사용자의 sshPublicKey 속성에서 키를 검색 하는 도구가 이미 포함되어 있습니다.
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
AuthorizedKeysCommandUser nobody