Posso "trazer diretórios comigo" quando eu ssh em outra máquina?

1
Na minha universidade, eu ssh em um cluster de computação Ubuntu para rodar softwares como Matlab e Matemática. Eu gosto de manter os arquivos que eu criei em minha própria máquina (ubuntu) para que (1) eles estejam todos em um único lugar, e (2) eu possa usar o software na minha máquina local para editar os arquivos.

Minha abordagem atual é 1) Login na máquina remota 2) Procure o meu endereço IP local com ifconfig 3) Monte os diretórios com os quais eu quero trabalhar na máquina remota usando sshfs digitando manualmente no meu endereço IP local

Isso funciona muito bem, mas eu queria saber se há uma maneira de automatizar isso, ou uma abordagem melhor? Ou seja, posso fazer com que certos diretórios como / home / user / Classes sejam montados automaticamente na máquina remota sem incomodar o meu endereço IP?

    
por Zach 17.10.2013 / 04:08

2 respostas

0

A primeira coisa que você quer fazer se ainda não fez é fazer login para que você possa fazer login sem uma senha.

link

A segunda coisa que você quer fazer é apenas executar um script no login do usuário

você pode fazer isso de várias maneiras, a maneira mais fácil é colocar o comando em um arquivo .bashrc ou .profile

A primeira linha garante que está sendo executada apenas no terminal ssh e você pode removê-la se isso não for relevante.

if [ -n "$SSH_TTY" ]; then
    $HOME/bin/run_ssh_login_script
fi

É claro que você pode ser criativo e detectar o endereço IP de conexão e os detalhes do usuário de login. Também um script legal que encontrei para fazer o link de conexão

    
por Goddard 17.10.2013 / 05:43
0

Como uma palavra de cautela, você deve garantir que a autenticação entre máquinas seja unidirecional. Isso significa que você deve acessar o servidor de seu laptop, mas não deve permitir que o servidor acesse o laptop da mesma maneira. Pode não ser óbvio aqui, mas com redes maiores, esse problema de segurança se torna mais evidente.

Por que não montar os diretórios remotos localmente e, em seguida, ssh na máquina ( sshfs , fuse , fstab )? É porque os arquivos no laptop são atualizados, e essas versões atualizadas são necessárias na máquina remota ( rsync )? Depois que o servidor é executado, os arquivos são atualizados e você precisa remover essas cópias processadas? Se você forneceu um exemplo de fluxo de trabalho, incluindo os arquivos, essas informações seriam úteis para responder à sua pergunta.

Você diz que quer poder editar os arquivos usando o software local, para poder configurar o sshfs no seu laptop para se conectar ao servidor remoto, desde que não tenha problemas em não editar os arquivos enquanto não estiver ter acesso ao servidor.

Outra opção é usar rsync , que pode ser uma solução melhor se a fonte da verdade ou as cópias atualizadas alternarem entre o laptop e o servidor. Você poderá sincronizá-los e informar rysnc qual sistema é o mais atualizado.

Parece-me que você acabou de adivinhar isso um pouco e, em vez de fazer login no servidor e montar seus diretórios a partir do laptop, vá em frente e monte esses diretórios do servidor para o laptop e, em seguida, ssh no sistema.

Para tornar tudo isso mais fácil, procure configurar .ssh/config com PubKeyAuthentication .

    
por earthmeLon 30.09.2018 / 18:33