Eu preciso fazer upload e download de arquivos programaticamente por meio de uma conexão sftp para um servidor remoto. Meu nome de usuário tem permissão para acessar um determinado diretório remoto por meio de uma senha, mas não o diretório .ssh. Na verdade, não consigo ssh no servidor remoto. Eu recebo a resposta:
This service allows sftp connections only.
Connection to www.example.com closed.
Mas para o propósito desta pergunta, digamos que eu simplesmente não tenha permissão para copiar minha chave privada no diretório .ssh remoto. Então minha pergunta é:
Como posso configurar meu arquivo local /.ssh/config , para evitar ser solicitado a autenticação de senha?
Obviamente, não posso copiar um par de chaves recém-gerado para o diretório remoto, como sugerido aqui , pelos motivos mencionados acima. Mas devo ter uma chave privada na minha máquina local para a conexão ssh em algum lugar, certo? Não posso simplesmente passar o diretório desse arquivo para a opção IdentityFile?
Peça ao administrador desse servidor remoto para habilitar a autenticação de chave pública para você. Como a autenticação de chave pública precisa ser suportada tanto do lado do servidor quanto do cliente, você não pode forçá-la apenas do cliente.
Para acesso com script , o sshpass é uma solução possível. Isso permite que você armazene sua senha em um arquivo para automatizar o login quando não puder usar a autenticação baseada em chave.
https://www.redhat.com/sysadmin/ssh-automation-sshpass é um recurso útil para isso.