Como faço scp para um usuário para o qual não tenho a senha?

4

Aqui está a situação. Eu tenho acesso de usuário a um servidor e acesso root ao mesmo servidor. Eu quero editar arquivos para um usuário que eu não tenho informações de senha para o servidor. ssh'ing como root está desabilitado, então eu normalmente ssh como meu usuário e su para root. Então eu cd para o diretório home do usuário de interesse e, em seguida, su para o usuário de interesse (desde que o usuário de interesse tenha acesso shell). Se o usuário não tem acesso shell ao servidor, sou forçado a modificar os arquivos como root, o que eu detesto fazer. Então, minha primeira pergunta é: como posso modificar com segurança os arquivos do usuário sem ser root se o usuário não tiver acesso ao shell?

Minha segunda pergunta envolve a transferência de arquivos para a conta do usuário usando um programa gráfico SFTP da minha área de trabalho. Como não tenho as informações de login do usuário de interesse (e o usuário pode não ter acesso ao shell), não posso entrar diretamente na conta do usuário, nem posso fazer o sftp como root. Então, ao invés disso, eu uso meu programa SFTP gráfico para inserir no diretório pessoal da minha conta de usuário no servidor. Em seguida, transfiro os arquivos por meio do programa SFTP para o diretório pessoal da minha conta de usuário no servidor e copio-os manualmente como raiz do diretório pessoal do meu usuário para o diretório inicial do usuário de interesse. Obviamente, isso é ineficiente e eu anseio por uma solução melhor. O que é isso?

Nota: Eu percebo que posso usar a linha de comando scp program para transferir os arquivos diretamente para o usuário do diretório home dos interesses, mas eu quero usar um programa SFTP gráfico.

    
por Peter Mortensen 07.09.2010 / 10:03

6 respostas

12

Configure um par de chaves rsa / dsa em sua própria máquina (ssh-keygen -t rsa) e, em seguida, anexe a chave pública ao arquivo ~ / .ssh / authorized_keys do usuário em questão. Se ~ / .ssh não existir - crie-o com 700 permissões, de propriedade do usuário.

Em seguida, você deve conseguir fazer login como esse usuário usando apenas as chaves (sem senha)

    
por 10.06.2009 / 21:36
5

link

None of the protocols (SFTP, FTP and SCP) supported by WinSCP allow the user to be changed in the middle of file transfer session. You need to start the session with the correct user.

In some cases (with Unix/Linux server) you may be able to use sudo command straight after login to change a user, before file transfer session starts.

The SFTP and SCP protocols allow for this, but the actual method is platform dependent.

    
por 07.09.2010 / 09:59
2

su -c bash --login deve fornecer um shell para esse usuário, independentemente do shell de login padrão (desativado). Você também pode colocar uma linha para si mesmo no arquivo ~ / .ssh / authorized_keys, e isso permitirá que você faça login como eles sem usar a senha.

    
por 10.06.2009 / 21:14
0

As soluções-chave SSH do WinSCP e do Brent com o nome de voto desconhecido.

Apenas uma nota para dizer que você pode usar essas duas soluções juntas.

Se não tiver certeza sobre como gerar a chave, use PuTTyGen e o WinSCP terá prazer em usar o formato que gera.

    
por 10.06.2009 / 21:47
0

su tem uma opção -s para especificar o shell a ser usado se o usuário não tiver acesso ao shell. Por exemplo:

su -s /bin/bash www-data
    
por 10.06.2009 / 22:16
0

Se eu entendi suas perguntas, a resposta mais simples é ignorar os problemas de SSH e tratar o problema como um problema de permissões. Quando os usuários desejam compartilhar o acesso aos arquivos, eles são colocados no mesmo grupo e as permissões do arquivo são definidas para que o grupo tenha acesso.

    
por 10.06.2009 / 23:28

Tags