일반 사용자, 시스템 사용자 및 루트 사용자를 허용하는 sshd에서 authenticate_keys 경로를 제공하는 방법은 무엇입니까?

일반 사용자, 시스템 사용자 및 루트 사용자를 허용하는 sshd에서 authenticate_keys 경로를 제공하는 방법은 무엇입니까?

AuthorizedKeysFile다음과 같은 경우를 포함하도록 명시적으로 설정할 수 있습니까 ?

  1. 표준 사용자의 경우/home/%u/.ssh/authorized_keys
  2. 시스템 사용자 아래/var/lib/%u/.ssh/authorized_keys
  3. 루트 사용자/root/.ssh/authorized_keys

내 질문은, 다음에 지정된 사용자 디렉토리를 포함하는 변수가 있습니까?이름 서비스 스위치?

답변1

.ssh/사용자가 실제 사용자인지, 시스템 사용자인지, 루트인지에 관계없이 사용자의 홈 디렉토리를 기본으로 사용하는 것을 허용한다고 표시하셨습니다 .

귀하의 질문에서 다음과 같이 추론했습니다.

나는 변경하여 이 /etc/ssh/sshd_config문제를 해결하려고 노력했습니다.

AuthorizedKeysFile ~/.ssh/authorized_keys 

sshd확인이 진행 중이었기 때문에 실패했습니다 /root/.ssh/authorized_keys.

빠르게 살펴보시면수동sshd_config다음과 같은 내용이 표시됩니다.

인증 키 파일

사용자 인증에 사용할 수 있는 공개 키가 포함된 파일을 지정합니다. AuthorizedKeysFile에는 연결 설정 중에 대체되는 %T 형식의 토큰이 포함될 수 있습니다. 다음 토큰이 정의됩니다. %%는 리터럴 "%"로 대체됩니다.%h는 인증 중인 사용자의 홈 디렉터리로 대체됩니다., %u는 사용자의 사용자 이름으로 대체됩니다. 확장되면 AuthorizedKeysFile은 절대 경로 또는 사용자 홈 디렉터리에 대한 상대 경로로 처리됩니다. 기본값은 ".ssh/authorized_keys"입니다.


내 기본 설정에서는 다음 줄을 주석 처리했습니다.

# AuthorizedKeysFile %h/.ssh/authorized_keys

이는 (적어도 OpenSSH의 Ubuntu 및 Debian 배포판의 경우) 실제로 기본 구성을 요청한다는 의미입니다! 이는 반대 투표를 하는 좋은 이유가 될 수 있습니다.

답변2

@Tomasz에 따르면 다음을 사용하여 사용자를 일치시킬 수 있습니다.

# no match rule
AuthorizedKeysFile /home/%u/.ssh/authorized_keys

match User foo
    AuthorizedKeysFile /special/authorized_keys.%u

match Group git
    /var/lib/%u/.ssh/authorized_keys

보다 일반적인 사용자를 먼저 사용하십시오.

사람을 만나 ssh_config거나 사람을 만나거나sshd_config

(그런데 chroot를 사용하여 sles12에서 작동하게 할 수 없었습니다)

관련 정보