Permitir scp / ssh para o usuário www-data


11

Estou no Amazon EC2 usando o Ubuntu 10.04.2

Minha pasta da web é de propriedade de www-data, então quero poder fazer login no meu servidor como www-data para ssh e scp.

Obrigado!

Adicionar a linha ao meu / etc / ssh / sshd_config parece não funcionar.

AllowUsers www-data

Respostas:


6

No Debian, no qual o Ubuntu é baseado, o usuário www-data possui / bin / sh como shell padrão. Para habilitar o SFTP, você pode criar /var/www/.ssh/authorized_keyscom você uma chave pública. As permissões /var/www/.sshdevem ser 700 e as permissões no arquivo allowed_keys devem ser 600. Você deve adicionar o seguinte à sua configuração http para proibir o acesso a esse diretório.

<Directory /var/www/.ssh>
  Order Deny,Allow
  Deny from all
</Directory>

Você pode verificar as configurações dos usuários do www-data (dir home, shell, etc) usando getent passwd www-data.

Verifique se o seu sshd_config possui Subsystem sftp /usr/lib/openssh/sftp-servere provavelmente você também deseja definir PasswordAuthentication no.


2

Isso é meio inseguro. Eu sugiro que você faça o upload para uma área intermediária usando outro usuário e execute um crontrabalho de tempos em tempos para mover as coisas para onde elas são alteradas e alterar suas permissões de acordo.

Se você realmente insiste em fazer logon como www-data, deve usar uma chave privada ssh para fazer isso (as instâncias do AFAIK EC2 permitem apenas autenticação de chave). Você também deve verificar se www-datapossui um shell válido /etc/passwde um diretório inicial válido.

No final, você também pode tentar algumas soluções desta questão .


Eu estava pensando em usar uma chave privada ssh para fazer isso. Mas se eu usar o cron para copiar os arquivos, não seria um pouco lento porque teria que esperar pelo script cron para copiá-lo. Além disso, não seria possível fazer upload de arquivos. O que eu realmente quero é algo como FTP para www-data, mas seguro como scp.
amigos estão

As outras soluções que eu dou são viáveis, só não gosto da ideia.
Coredump #

-3

Efetuar login como www-data para scp é perda de tempo.

Para o comando scp, por que você não usa ssh2_scp_sendpara transferir arquivos, é simples e não precisa adicionar-ssh ou criar uma chave pública para o usuário www-data

por exemplo

ssh2_scp_send($connection, '/directory/filename', '/remotedirectory/filename', 0644);

Deveria trabalhar

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.