사용자 구성입니다
cat /etc/passwd | grep sftp
sftpadmin:x:1001:1001::/backups:/sbin/nologin
생성된 디렉터리 구조
mkdir -p /backups/.ssh/
touch /backups/.ssh/authorized_keys
sudo chown sftpadmin:sftpusers/backups/.ssh
sudo chmod 700 /backups/.ssh
sudo chown sftpadmin:sftpusers /backups/.ssh/authorized_keys
sudo chmod 600 /backups/.ssh/authorized_keys
그런 다음 Authorized_keys 파일에 고객 공개 키를 추가했습니다.
그런 다음 이것을 시도했습니다.
sftp -v -oPort=22 -i /home/me/.ssh/id_rsa [email protected]
하지만 매번 비밀번호를 입력하라는 메시지가 표시됩니다. /var/log/secure
비밀번호를 입력하지 않으면 수표에 아무것도 표시되지 않습니다.
홈 디렉터리가 있는 다른 사용자 계정과 동일한 RSA 키 쌍을 사용해 보았으며 이는 SSH 및 SFTP 공개 키 인증과 함께 작동합니다.
하지만 SFTP를 통해 연결하려고 할 때마다 sftpadmin
비밀번호를 입력하라는 메시지가 표시됩니다. 서버가 공개 키 사용을 거부했습니다. 왜? 이 문제를 어떻게 해결하나요?
편집하다:
- Centos 실행 2009년 7월 9일
- OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 2017년 1월 26일
- /etc/ssh/sshd_config 설정
AuthorizedKeysFile .ssh/authorized_keys
/bin/bash
쉘에 대해 SSH 할당 사용자를 다시 시작했지만 동일한 문제- selinux가 비활성화되었습니다
- 방화벽이 비활성화되었습니다.
고쳐 쓰다: 효과가 있었습니다. IT는 다음의 조합입니다.
- /etc/passwd 구성
- Chroot 디렉터리 구성/etc/ssh/sshd_config
- 권한
다음과 같이 수정했습니다.
- 위에서 설명한 대로 /etc/passwd를 그대로 둡니다.
- /etc/ssh/ssh_config를 편집하고 다음 내용을 구성합니다.
Match Group sftpusers ChrootDirectory /backups/%u ForceCommand internal-sftp
- 다음을 올바른 방식으로 생성하고 구성했는지 확인하세요.
mkdir -p /backups/.ssh touch /backups/.ssh/authorized_keys chown root:sftpusers /backups chown -R sftpadmin:sftpusers /backups/.ssh chmod 755 /backups/ chmod 600 -R /backups/.ssh
조합이 작동했습니다. 문제는 chroot 감옥의 소유권에 있습니다. 다른 사용자가 아닌 루트가 소유해야 합니다.