![SFTP 공개 키 인증은 한 사용자에게는 작동하지만 다른 사용자에게는 작동하지 않습니다.](https://linux55.com/image/192943/SFTP%20%EA%B3%B5%EA%B0%9C%20%ED%82%A4%20%EC%9D%B8%EC%A6%9D%EC%9D%80%20%ED%95%9C%20%EC%82%AC%EC%9A%A9%EC%9E%90%EC%97%90%EA%B2%8C%EB%8A%94%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%EB%A7%8C%20%EB%8B%A4%EB%A5%B8%20%EC%82%AC%EC%9A%A9%EC%9E%90%EC%97%90%EA%B2%8C%EB%8A%94%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
공개 키를 사용하여 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 플래그가 작동하지 않는 이유는 내가 조사해야 할 또 다른 질문이지만 이 문제는 해결되었습니다.