SFTP 공개 키 인증은 한 사용자에게는 작동하지만 다른 사용자에게는 작동하지 않습니다.

SFTP 공개 키 인증은 한 사용자에게는 작동하지만 다른 사용자에게는 작동하지 않습니다.

공개 키를 사용하여 SFTP를 통해 로그인할 수 있지만 다른 사용자가 동일한 방식으로 작업하도록 설정할 수 없는 사용자가 한 명 있습니다. 다른 유사한 문제를 검색했는데 해결 방법은 일반적으로 소유권이나 권한과 관련이 있지만 이 구성을 수십 번 확인했는데 모든 것이 올바르게 정렬되었습니다.

원하는 결과는 클라이언트가 단일 키 쌍을 사용하여 여러 계정을 사용하여 서버에 연결하도록 하는 것입니다. 현재 구성에서authorized_keys 파일의 내용은 두 사용자 모두 동일하며 클라이언트의 개인 키가 서버에 설치된 공개 키와 절대적으로 일치한다고 확신합니다.

유효한 사용자:

# id ideal-dwh
uid=514(ideal-dwh) gid=514(ideal-dwh) groups=514(ideal-dwh),519(sftp-users)

# ls -la
total 48
drwxr-xr-x 4 root      sftp-users  4096 Jul 12 21:08 .
drwx-----x 6 root      root        4096 Jul 13 14:13 ..
drwx--x--- 2 root      sftp-users  4096 Jul 12 21:10 .ssh
drwxr-xr-x 2 ideal-dwh sftp-users 36864 Jul 13 05:45 uploads

# cd .ssh
# ls -la
total 16
drwx--x--- 2 root sftp-users 4096 Jul 12 21:10 .
drwxr-xr-x 4 root sftp-users 4096 Jul 12 21:08 ..
-rw-r--r-- 1 root sftp-users 1036 Jul 12 16:01 authorized_keys

작동하지 않는 사용자 :

# id gapautoparts-dwh
uid=524(gapautoparts-dwh) gid=524(gapautoparts-dwh) groups=524(gapautoparts-dwh),519(sftp-users)

# ls -la
total 48
drwxr-xr-x 4 root             sftp-users  4096 Jul 13 14:13 .
drwx-----x 6 root             root        4096 Jul 13 14:13 ..
drwx--x--- 2 root             sftp-users  4096 Jul 13 14:13 .ssh
drwxr-xr-x 2 gapautoparts-dwh sftp-users 36864 Jul 13 14:13 uploads

# cd .ssh
# ls -la
total 16
drwx--x--- 2 root sftp-users 4096 Jul 13 14:13 .
drwxr-xr-x 4 root sftp-users 4096 Jul 13 14:13 ..
-rw-r--r-- 1 root sftp-users 1036 Jul 13 14:13 authorized_keys

sshd_config콘텐츠

LogLevel VERBOSE
...
Match Group sftp-users
ChrootDirectory /data/%u
ForceCommand internal-sftp -d /uploads
X11Forwarding no
AllowTcpForwarding no
PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

이것확인 로그파일은 비어 있으며 구성 파일의 로그 수준이 상세하더라도 보안 로그에는 실패한 로그인 시도와 관련된 내용이 표시되지 않습니다.

두 번째 사용자에게 연결하려고 할 때 발생하는 특정 오류는 다음과 같습니다.

Status: Connecting to server...
Status: Using username "gapautoparts-dwh". 
Status: Server refused our key 
Status: Access denied 
Error:  Authentication failed.
Error:  Critical error: Could not connect to server
Status: Disconnected from server

내가 지금까지 시도한 것 :

권한 및 소유권 변경

이 문제를 연구할 때 이것이 가장 일반적인 해결책인 것 같습니다. 제가 일반적으로 보는 권장 설정은 연결하는 사용자/그룹이.ssh700개의 권한이 있는 디렉터리 및 해당 콘텐츠.ssh디렉터리 및 600개 권한인증 키문서. 손상된 사용자를 변경해도 아무런 차이가 없는 것 같습니다. 또한 업무 사용자에게 이러한 소유자/권한을 설정하면 실제로 문제가 발생합니다.

저는 제가 생각할 수 있는 소유권과 권한의 거의 모든 조합을 시도했지만 성공하지 못했습니다. 현재 작업 사용자의 소유권과 권한을 내가 이미 가지고 있는 것 이외의 다른 것으로 변경하면 모든 것이 중단됩니다.

다른 키 쌍 사용

내가 원하는 결과는 특정 키 쌍을 사용하여 두 사용자를 연결하는 것이지만 문제 해결 시 다른 키 쌍을 사용해도 시도했습니다.인증 키필요에 따라 파일을 제출하세요.

이로 인해 피해를 입은 사용자에게는 아무런 차이가 없습니다. 업무용 사용자의 경우 서버와 클라이언트에 대해 설정된 키 쌍을 사용하여 연결할 수 있습니다.

새로운 사용자로 시작

이 문제는 이 게시물에서 공유한 특정 사용자에게만 국한되지 않습니다. 업무용 사용자를 생성할 때와 동일한 단계에 따라 추가 사용자를 생성했지만 어느 누구에게도 연결할 수 없습니다.

sshd_config에서 사용자별 설정 지정

또한 그룹 설정 대신 sshd_config에 사용자별 규칙을 추가하려고 시도했지만 성공하지 못했습니다. 다음을 추가해도 아무런 차이가 없습니다.

Match User gapautoparts-dwh
ChrootDirectory /data/gapautoparts-dwh
ForceCommand internal-sftp -d /uploads
X11Forwarding no
AllowTcpForwarding no
PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

답변1

문제는 결국 새 사용자에 대해 홈 디렉토리가 올바르게 설정되지 않았다는 것입니다.

사용자를 생성하려면 다음 명령을 사용하십시오.

useradd -g sftp-users -d /data/gapautoparts-dwh/ gapautoparts-dwh

/etc/passwd의 항목은 다음과 같이 추가됩니다.

gapautoparts-dwh:x:524:524::/home/gapautoparts-dwh:/bin/bash

-d 플래그가 작동하지 않는 이유는 내가 조사해야 할 또 다른 질문이지만 이 문제는 해결되었습니다.

관련 정보