EC2 인스턴스에서 Ubuntu 서버를 실행하고 있습니다. 해당 서버에 로그인하기 위해 비밀번호없이 인증서 파일을 사용합니다.
vsftpd를 설치 및 구성하고 / bin / false ssh 터미널을 설정 한 사용자 ( “testuser”라고 함)를 작성하여 sftp를 통해서만 연결하고 자신의 집에서 파일을 업로드 / 액세스 할 수있게했습니다. 예배 규칙서.
그러나-컴퓨터에서 서버에 연결하려고하면
sftp testuser@my-ec2-server
나는 얻다
권한이 거부되었습니다 (공개 키).
연결 종료
메시지를 표시하여 로그인 할 수 없습니다.
이 사용자에 대한 인증서 요구 사항 만 제거하려면 ( “ubuntu”사용자는 여전히 ssh를 통해 로그인하기 위해 인증서 파일을 사용해야 함) 일반 sftp 클라이언트는 사용자 이름과 비밀번호를 사용하여 연결할 수 있습니까?
감사합니다.
PS 마이크로 인스턴스에서 표준 64 비트의 Ubuntu Server 10.10 공식 AMI 사용.
답변
원하는 것을 이루려면 두 가지 다른 일을해야합니다
- 비밀번호를 승인하도록 sshd 구성 변경
당신은 그래서 그냥 편집하고 싶은 경우에 나는 우선이 이렇게 나쁜 생각이라고한다 차라리 그럼에도 불구하고, 활성화 암호에 비해 사용자에 대한 인증서를 생성하는 것이다 /etc/ssh/sshd_config
변경하거나 그래서 쇼 주석을 PasswordAuthentication yes
. 완료되면 sshd를 다시 시작하십시오.service ssh restart
- 쉘을 사용하지 않고 sftp를 사용하는 FTP 사용자 만 허용
rsh (resticted shell)를 설치하고 사용자 쉘을 변경해야 함을 완료하려면 chsh username
답변
다음은 단계별 안내입니다.
- 사용자 bob의 / home / bob / uploads에 대한 SFTP 액세스
- SSH에서 밥을 잠그십시오
- 키 대신 사용자 이름 / 암호를 사용하십시오.
먼저 / etc / ssh / sshd_config 파일을 편집하십시오 :
sudo nano /etc/ssh/sshd
아래로 스크롤하여 수정하십시오.
PasswordAuthentication yes
아래에 이것을 추가하십시오 :
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
종료하고 저장하려면 Ctrl-X를 누르십시오.
이제 사용자를 추가하십시오 :
sudo useradd bob
sudo passwd bob
이제 그룹을 추가하고 ssh를 비활성화하십시오 :
sudo groupadd sftpusers
sudo usermod -g sftpusers bob
sudo usermod -s /usr/bin/rssh bob
sudo usermod -d /home/bob bob
이제 권한을 설정하십시오.
sudo chown root:root /home/bob/
sudo chmod 755 /home/bob/
sudo mkdir /home/bob/uploads
sudo chown bob /home/bob/uploads
sudo service sshd restart
이 모든 것은 루트 사용자 (Amazon Linux AMI의 EC2- 사용자)로 로그인 한 상태입니다.