Estou tentando fazer algo bastante incomum (para mim mesmo) com o SSH e não consigo fazê-lo funcionar, espero que você possa ajudar.
Quero estabelecer uma conexão com um servidor remoto do meu Mac usando SSH. Por enquanto, tudo bem. Agora, a parte complicada, com a conexão com o servidor remoto estabelecida, desejo iniciar uma conexão do servidor remoto VOLTAR para a máquina local. Eu sei, louco. Basicamente, preciso percorrer esses circuitos para poder navegar no servidor remoto e, em seguida, enviar as informações do arquivo de volta à minha máquina local, para que possam ser tratadas por um aplicativo na máquina local. Espero que isso faça sentido!
No momento, se eu fizer o SSH de volta à máquina local quando estiver conectado ao servidor remoto, o terminal permanecerá lá zunindo, sem erros, mesmo com -v.
Estou tentando descobrir para onde devo ligar olhando para a saída da variável $ SSH_CLIENT, mas estou em uma conexão padrão à Internet com baunilha (sem endereço IP estático). Acho que isso pode estar causando o problema.
Coisas que estabeleci: estou em um Mac (OS X 10.6.4) e tenho o Login Remoto ativado nas preferências / compartilhamento do sistema. Se eu tentar fazer o SSH no meu Mac a partir de outra máquina na LAN, não consigo conectar problemas. Se eu tentar fazer o SSH em outro servidor (não na minha máquina local) do meu servidor remoto, posso conectar-me sem problemas.
Portanto, os fatos acima me fazem pensar que estou claro em relação aos firewalls etc. nas máquinas locais e remotas.
Tenho certeza de que devo estar perdendo algo bastante óbvio aqui, mas por toda a minha vida não consigo entender.
Qualquer ajuda, links ou empurrões gerais na direção certa serão muito apreciados!
fonte
Respostas:
Se, quando você se conectar novamente ao seu local, permitir que você faça o login antes de desligar, essa não é a resposta. Se você não chegar tão longe, provavelmente não estará voltando ao seu Mac (ou não chegando a lugar algum ou atingindo o SSH em um gateway). Tente um túnel reverso (será necessário GatewayPorts definido como On em sshd_config no seu servidor, mas acredito que seja o padrão):
you@yourMac$ ssh -R 2000:localhost:22 user@remoteserver
Isso deve permitir que você se conecte ao servidor normalmente, mas também abre um túnel para poder se conectar novamente porta 2000 (qualquer porta acima de 1024 deve funcionar),
you@yourserver$ ssh -p2000 user@localhost
EDIT: nome do host alterado para localhost
fonte
A sua máquina local está acessível a partir do servidor? Você pode fazer ping? Estou perguntando isso porque o que você está fazendo deve funcionar se sua máquina estiver acessível. Seu servidor está na internet ou na LAN, mesma sub-rede?
De qualquer forma, se você só precisa editar um arquivo, por que você simplesmente não usa o scp para copiar o arquivo na sua máquina local? Você pode usar o ssh para procurar o arquivo no servidor remoto e, quando tiver o caminho, digite sua máquina local (em outro terminal):
Para colocar o arquivo de volta, scp novamente alternando os caminhos.
Obs: você não precisa da conexão ssh inicial para usar o scp - ele criará uma nova
Isso acima é se você precisar acessá-lo no terminal. No linux (e certamente no Mac, mas não sei como fazê-lo), você pode montar um local remoto ssh em redes e usar a conexão ao usar um disco local (este é sftp e a conexão está no formato:
sftp://user@server:/path/to/mount
e acho que é isso que você precisa, em vez de uma conexão de terminal remoto, para que você possa editar o arquivo diretamente com o aplicativo Mac.fonte
Você também pode dar uma olhada em
sshfs
(você precisa do MacFuse para isso). Isso permite montar diretórios na máquina remota e acessá-los como as pastas comuns da sua máquina. Além disso, você ainda podessh
entrar na máquina e criar / pesquisar os arquivos necessários. Transferi- los seria tão fácil quanto transferir arquivos locais.fonte