업데이트: 문제를 해결했지만 왜 발생했는지 잘 모르겠습니다.

업데이트: 문제를 해결했지만 왜 발생했는지 잘 모르겠습니다.

배경

ras 키를 통해 SSH 액세스로 서버를 설정했습니다. 비밀번호 접근은 허용되지 않습니다.

잘 작동했어요. 내 사용자(USER1이라고 부르겠습니다)와 루트는 각각의 키를 사용하여 로그인할 수 있습니다.

잠재적으로 문제를 일으킬 수 있는 변경 사항

어제 지침에 따라 서버를 몇 가지 변경했습니다.이 기사에서, 새 사용자(USER2)에게 하나의 폴더(웹 루트)에 대한 제한된 액세스 권한을 부여하기 위해. 나는 또한이 기사.

이러한 변경 사항을 요약하기 위해 새 사용자(USER2)를 생성하고 bindfs웹 루트( /home/user1/sites/domain/public/)를 /home/user2/domain/public/)에 수행했습니다. 해당 기사에 따라 몇 가지 다른 작업이 수행되었지만 내가 알 수 있는 한 그 중 어느 것도 USER1의 권한 및 SSH 액세스에 영향을 미치지 않습니다. 그래서 여기서 그 모든 내용을 반복하지는 않겠습니다.

해당 기사 중 하나에 따라 파일에 다음도 추가했습니다 sshd_config.

subsystem sftp internal-sftp
Match User USER2
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp

제가 아는 한, 마지막으로 USER1로 로그인할 수 있었던 이후 변경된 사항은 이것뿐입니다.

문제

위와 같이 변경한 후 다음날(오늘) 로그인이 되지 않았습니다. 오류가 발생합니다 Permission denied (publickey)..

~/home/USER1/.ssh폴더와 파일 에 대한 올바른 권한과 소유권을 설정하기 위해 모든 표준 권장 사항을 따랐습니다 ~/home/USER1/.ssh/authorized_keys. 하지만 어제 내 작업으로 인해 변경된 사항은 없으므로 기본적으로 기존 권한을 다시 적용했습니다.

/etc/ssh/sshd_config내 파일 의 내용은 다음 과 같습니다.

Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 1024
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes

AuthorizedKeysFile  %h/.ssh/authorized_keys
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
UsePAM yes
Subsystem sftp /usr/lib/openssh/sftp-server

Match User USER2
PasswordAuthentication yes
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp

AuthorizedKeysFile %h/.ssh/authorized_keys이전에 주석 처리되었습니다. 이 문제를 해결하는 동안 주석을 제거했습니다.

내 USER1이 키 기반 SSH 액세스를 방해하는 이유가 무엇인지 알 수 없습니다. 도움이 될 만한 추가 정보가 있으면 알려주시기 바랍니다.

업데이트: 문제를 해결했지만 왜 발생했는지 잘 모르겠습니다.

모든 권한이 올바른지, 파일에 이상한 점이 없는지 다시 확인한 후 sshd-config비밀번호 로그인을 허용하도록 ssh를 설정한 다음 id_rsa.pub 파일( 사용 ssh-copy-id)을 서버에 다시 복사했습니다.

이로써 키를 사용하여 USER1에 대한 액세스 권한이 복원되었습니다.

이 문제가 발생한 이유를 완전히 이해하지 못하며 추가 서버에서 해당 문서의 지침을 사용할 계획입니다(예를 들어 개발자에게 엄격한 SFTP 액세스 권한만 부여하는 데 매우 유용한 방법임이 입증되었기 때문입니다). 따라서 누구든지 지침에 있는 오류를 지적할 시간이 있다면 그렇게 하십시오.

여러분이 해당 기사를 읽지 않도록 하기 위해 제가 취한 단계를 자세히 설명하겠습니다.

mkdir -p /home/user2/websites/application1
chown -Rf user2:user2 /home/user2/websites
chmod -Rf 770 /home/user2/websites

다음을 추가하세요./etc/fstab

bindfs#/home/user1/websites/domain/public /home/user2/websites/application1 fuse force-user=user2,force-group=user2,create-for-user=user1,create-for-group=user1,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0

chown user1:user1 /home/user1/websites/domain/public
chmod 770 /home/user1/websites/domain/public

새 사용자를 만들었습니다.

sudo useradd -d /home/user2/website/application1 user2
sudo passwd user2

sshd-config에 추가됨

subsystem sftp internal-sftp
Match User user2
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp

그 다음에,sudo service ssh restart

질문

수정된 질문은 위 단계에서 user1키를 사용하여 SSH에 액세스하면 어떤 결과가 발생했을까요? 입니다.

관련 정보