Como faço para montar uma pasta SSH no linux para que eu possa acessá-lo e ler / escrever como se fosse uma pasta normal?

2

Eu tenho um servidor remoto no qual eu posso usar o SSH. Eu quero montar uma pasta que está nesse servidor no meu desktop linux local. Então eu quero ser capaz de ler / gravar arquivos lá dentro do meu editor de texto. Como faço isso?

Um requisito importante:

  • O servidor remoto não permite login raiz
  • A pasta no servidor remoto é somente raiz

Normalmente, quando eu ssh, eu faço o login como o usuário básico e, em seguida, faço um "su" para fazer ações de raiz. Como eu faria isso com sshfs?

Servidor: CentOS 6.5
Desktop: openSUSE 13.1

    
por Don Rhummy 30.01.2014 / 21:57

2 respostas

1

Como @allquixotic declarou em sua resposta, você pode usar o SSHFS para montar um caminho remoto em uma pasta local. Para conseguir o que você pediu, você precisa de uma solução semelhante a essa .

Como o SSHFS usa o SSH File Transfer Protocol como base, isso significa que um servidor é gerado quando você faz login como um usuário. Mas isso também significa que você não pode diretamente executar su , porque um shell não é gerado.

Uma maneira de contornar isso é executar o servidor como root, e você pode fazer isso com o -o sftp_server como indicado no documentação . Assim:

sshfs username@host:remote_path local_mount_path -o sftp_server="/usr/bin/sudo /usr/libexec/openssh/sftp-server"

No entanto, como sudo requer uma autenticação (obviamente), você precisa de uma maneira de autenticá-lo. Você pode usar duas alternativas diferentes:

  • Use o arquivo sudoers para adicionar a possibilidade de executar sftp-server , por seu usuário, sem pedindo uma senha. Veja como fazê-lo aqui Não importa se é para o Ubuntu).
  • Execute sudo com SSH e, em seguida, execute o comando sshfs . Isso permitirá que o sudo seja executado sem uma senha, já que você já o executou um momento antes. Isso atualizará o tempo limite por 5 minutos:

    ssh username@host sudo -v
    

Você também pode tentar enviar a senha diretamente para sudo , mas eu não recomendo isso, pois ela é insegura e provavelmente não funcionará porque servidor não é gerado por um shell.

    
por 30.01.2014 / 23:20
6

Há mais de uma maneira de fazer isso. Outras respostas que sugerem alternativas não estão erradas ; eles são apenas diferentes . Vou explicar uma possibilidade específica: sshfs .

Você pode usar o SSHFS , que é um Sistema de arquivos no espaço do usuário que mapeia um diretório para um caminho local através do SSH. Isso deve funcionar em praticamente qualquer sistema operacional GNU / Linux moderno com um kernel Linux da série 2.6 ou da série 3.x. Você pode ter que compilar os componentes sshfs ou libfuse do código-fonte se eles não existirem no repositório da sua distribuição.

Como você não mencionou qual distribuição está usando, não posso fornecer instruções mais específicas para a instalação.

Exemplo de uso:

$ sshfs [email protected]: ~/destpath

mapeia a pasta pessoal de user on server.com para ~/destpath na máquina local.

    
por 30.01.2014 / 22:11