Transferindo arquivos para outra pessoa via sftp

4

Esta é provavelmente uma pergunta idiota, mas a Internet não ajudou muito ...

Alguém mais está me dando um conjunto de dados muito grande para enviar por e-mail, Dropbox, etc., então estou pensando que podemos usar sftp ou scp. Mas como ela poderá fazer isso sem que eu lhe forneça a senha da minha máquina? Esta é uma transferência única de dados, então prefiro não passar por muitos problemas - se for muito trabalho, vou apenas dar a ela minha senha e depois alterá-la quando ela terminar de transferir os arquivos.

    
por Betterthan Kwora 21.02.2016 / 21:46

4 respostas

1

Sua máquina está acessível pela Internet?

O primeiro obstáculo é que sua máquina pode não estar acessível na Internet!

A maioria das máquinas clientes não pode ser acessada diretamente pela Internet porque elas não têm um endereço IP público. É como ter um telefone que pode chamar, mas não pode ser chamado. Isso aconteceu principalmente porque há um suprimento limitado de endereços IP; a menos que o seu ISP suporte o IPv6 ou você tenha uma configuração muito atípica, você tem um único endereço IP em casa, e esse é o endereço do seu roteador doméstico. Seus computadores podem fazer conexões de saída porque o roteador doméstico fornece a funcionalidade NAT .

A maioria dos roteadores domésticos pode ser configurada para permitir que as conexões de entrada sejam roteadas para uma máquina específica na rede local. Para permitir conexões SSH de entrada, roteie a porta 22 para o seu computador. Veja a documentação do seu roteador para saber como fazer isso.

Se você tiver azar e seu ISP não fornecer um endereço IP público, você não poderá fazer conexões de entrada. Para verificar se você tem um endereço IP público, conecte-se à interface administrativa do seu roteador e verifique se o endereço externo está no intervalo privado (os endereços internos estão no intervalo privado, exceto em configurações atípicas).

Conceder acesso ao shell ou arquivo à sua máquina

A maneira (relativamente) fácil de fornecer acesso à sua máquina para alguém é criar uma conta de usuário para ela. Com uma conta de usuário comum, eles poderão ver muitas coisas, mas não poderão modificar seus arquivos (a menos que você tenha se esforçado para torná-los mundialmente graváveis), e eles não serão ser capaz de ver os arquivos que estão em um diretório privado ( drwx------ permissions).

Para maior segurança, configure a conta para ser usada apenas para manipular arquivos em um diretório específico por SFTP. Isso é um pouco mais difícil (eu esperava que o OSX fornecesse uma GUI fácil de usar para isso, mas aparentemente não); veja Crie um usuário remoto somente no OS X? ou Como configurar um servidor SFTP em um Mac & em seguida, permita que um amigo faça o upload de arquivos para o iPhone, iPad ou outro iDevice para obter instruções.

Você precisa ativar o acesso remoto. Existe uma entrada da base de conhecimento OSX para isso. Ative somente o usuário que deve ter acesso remoto. Não habilite o acesso remoto para uma conta que possa ter uma senha fraca!

Defina uma senha aleatória na conta e peça a ela que copie e cole a senha e salve-a em um arquivo. Não exponha uma máquina com senhas fracas e escolhidas pelo homem à Internet. Você pode usar o seguinte comando para gerar a senha:

</dev/urandom tr -dc A-Za-z0-9 | head -c 16; echo

Transferindo arquivos peça por peça

Então, enviar arquivos pela Internet ainda é difícil.

A solução de baixa tecnologia é usar um dos muitos sites de compartilhamento de arquivos. Eles ganham dinheiro com anúncios, por isso, nem pense em visitar um sem um bloqueador de anúncios e tenha muito cuidado com o local onde você clica, pois é provável que ele tente veicular seu malware. Depois de baixar um arquivo, verifique se ele é o arquivo correto: calcule sua soma de verificação SHA-2 com

sha -a256 /path/to/file

no OSX, sha256sum /path/to/file no Linux.

    
por 22.02.2016 / 01:55
0

Se você não se importar que eles tenham acesso ao shell a um usuário diferente em seu sistema, basta criar um novo usuário e dar a ele as credenciais. Se você fizer isso, depois de criar o usuário, você precisará configurar seu sistema para iniciar o SFTP em um chroot.

    
por 22.02.2016 / 01:10
0

Portanto, há alguns fatores complicadores em fazer isso corretamente. A primeira é que o receptor precisará abrir uma porta NAT Forwarding para o SSH no seu roteador / firewall / NAT Gateway, para que seja acessível a partir da Internet.

A próxima é que scp e sftp funcionam em uma sessão ssh e, portanto, ela precisará de credenciais de login para uma conta em seu sistema. Se você der a senha à sua conta de usuário, eles poderão acessar qualquer coisa no sistema para a qual sua conta tenha permissões. Portanto, eu recomendaria criar uma conta do sistema separada no sistema receptor para scp / sftp apenas.

Depois de criar essa conta separada, você pode forçá-la a permitir somente scp usando a ferramenta scponly . Em seguida, você pode definir uma senha para a nova conta de usuário e fornecê-la ao remetente ou use as chaves SSH para evitar a necessidade de digitar uma senha.

    
por 22.02.2016 / 02:02
0

Para uma transferência de arquivos única, você pode usar woos (oferta da web em um fluxo):

link

Se você tiver que enviar ou receber arquivos BIG com mais frequência, deve examinar F * EX:

link

    
por 26.02.2016 / 17:42