Como configuro um usuário sftp para efetuar login com uma senha em um servidor ubuntu EC2?


14

Eu tenho um servidor Ubuntu em execução em uma instância do EC2. Para acessar esse servidor, eu uso um arquivo de certificado sem nenhuma senha.

Eu instalei e configurei o vsftpd e criei um usuário (vamos chamá-lo de "testuser") para o qual eu configurei um terminal / bin / false ssh para que ele só possa se conectar via sftp e fazer upload / acessar arquivos em sua casa diretório.

No entanto - quando tento conectar-me ao servidor do meu computador, executando

sftp testuser@my-ec2-server

eu recebo

Permissão negada (chave pública).
Conexão fechada

mensagens para que eu não possa entrar.

Como posso remover o requisito de certificado apenas para esse usuário (ou seja, o usuário "ubuntu" ainda precisará usar o arquivo de certificado para efetuar login via ssh), para que clientes sftp normais possam se conectar usando um nome de usuário e uma senha?

Obrigado.

PS: Usando o Ubuntu Server 10.10 AMI oficial da canonical, 64bit em uma micro instância.

Respostas:


10

Para realizar o que você deseja, você precisa fazer duas coisas diferentes

  1. Altere a configuração do sshd para aceitar senhas

Antes de tudo, devo dizer que é uma má idéia fazer isso, prefiro gerar um certificado para o usuário do que ativar senhas, no entanto, se você quiser fazê-lo, basta editar /etc/ssh/sshd_confige alterar ou descomentar o que é mostrado PasswordAuthentication yes. Feito isso, reinicie o sshdservice ssh restart

  1. Permita que os usuários façam FTP usando sftp e não tenham shell

Para concluir que você precisa instalar o rsh (shell restrito) e alterar o shell do usuário para ele chsh username


Eu só quero que esse usuário específico (testuser), que terá apenas acesso sftp, use uma senha em vez de um certificado. A parte de não permitir que o usuário para acesso via ssh, eu já fiz, definindo seu tipo festa como / bin / false
Doron

1
Doron, você não poderá permitir apenas um usuário via passwd, ou permitir a autenticação de senha para todos ou para ninguém. Também /bin/falsenão permitirá conexões SFTP (qualquer conexão ssh precisa de um shell válido, que é onde rsh faz o truque)
lynxman

1
Isto não funcionou para mim no Ubuntu EC2, não sei o que a etapa extra que estou em falta é, a porta 22 está aberta
Doug Molineux

Veja serverfault.com/questions/154957/... para configurar apenas o usuário SFTP com uma senha ...
Raman

-1

Aqui está um guia passo a passo para permitir:

  1. Acesso SFTP a / home / bob / uploads para o usuário bob
  2. Bloquear bobina para fora do SSH
  3. Use nome de usuário / senhas em vez de chaves:

Primeiro, edite seu arquivo / etc / ssh / sshd_config:

sudo nano /etc/ssh/sshd

Role para baixo e modifique:

PasswordAuthentication yes

e adicione isso na parte inferior:

Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no  

Pressione Ctrl-X para sair e salvar.

Agora adicione o usuário:

sudo useradd bob
sudo passwd bob

Agora adicione os grupos e desative o ssh:

sudo groupadd sftpusers
sudo usermod  -g sftpusers bob
sudo usermod -s /usr/bin/rssh bob
sudo usermod -d /home/bob bob

Agora defina as permissões:

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

Tudo isso enquanto você faz logon como usuário raiz (usuário ec2 nas AMIs do Amazon Linux)


3
Não é preciso largar a calça apenas para permitir que um usuário use a autenticação de senha.
EEAA
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.