EC2 우분투 서버에 비밀번호로 로그인하도록 sftp 사용자를 어떻게 설정합니까? 및 구성하고

EC2 인스턴스에서 Ubuntu 서버를 실행하고 있습니다. 해당 서버에 로그인하기 위해 비밀번호없이 인증서 파일을 사용합니다.

vsftpd를 설치 및 구성하고 / bin / false ssh 터미널을 설정 한 사용자 ( “testuser”라고 함)를 작성하여 sftp를 통해서만 연결하고 자신의 집에서 파일을 업로드 / 액세스 할 수있게했습니다. 예배 규칙서.

그러나-컴퓨터에서 서버에 연결하려고하면

sftp testuser@my-ec2-server

나는 얻다

권한이 거부되었습니다 (공개 키).
연결 종료

메시지를 표시하여 로그인 할 수 없습니다.

이 사용자에 대한 인증서 요구 사항 만 제거하려면 ( “ubuntu”사용자는 여전히 ssh를 통해 로그인하기 위해 인증서 파일을 사용해야 함) 일반 sftp 클라이언트는 사용자 이름과 비밀번호를 사용하여 연결할 수 있습니까?

감사합니다.

PS 마이크로 인스턴스에서 표준 64 비트의 Ubuntu Server 10.10 공식 AMI 사용.



답변

원하는 것을 이루려면 두 가지 다른 일을해야합니다

  1. 비밀번호를 승인하도록 sshd 구성 변경

당신은 그래서 그냥 편집하고 싶은 경우에 나는 우선이 이렇게 나쁜 생각이라고한다 차라리 그럼에도 불구하고, 활성화 암호에 비해 사용자에 대한 인증서를 생성하는 것이다 /etc/ssh/sshd_config변경하거나 그래서 쇼 주석을 PasswordAuthentication yes. 완료되면 sshd를 다시 시작하십시오.service ssh restart

  1. 쉘을 사용하지 않고 sftp를 사용하는 FTP 사용자 만 허용

rsh (resticted shell)를 설치하고 사용자 쉘을 변경해야 함을 완료하려면 chsh username


답변

다음은 단계별 안내입니다.

  1. 사용자 bob의 / home / bob / uploads에 대한 SFTP 액세스
  2. SSH에서 밥을 잠그십시오
  3. 키 대신 사용자 이름 / 암호를 사용하십시오.

먼저 / 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- 사용자)로 로그인 한 상태입니다.