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