배경
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에 액세스하면 어떤 결과가 발생했을까요? 입니다.