Conexão mestre
É mais fácil se você planejar com antecedência.
Abra uma conexão principal pela primeira vez. Para conexões subseqüentes, roteie as conexões escravas através da conexão principal existente. No seu ~/.ssh/config
, configure o compartilhamento de conexão para que ocorra automaticamente:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Se você iniciar uma sessão ssh da mesma maneira (usuário, porta, máquina) que uma conexão existente, a segunda sessão será encapsulada na primeira. O estabelecimento da segunda conexão não requer nova autenticação e é muito rápido.
Portanto, enquanto você tem sua conexão ativa, pode rapidamente:
Encaminhamento
Em uma conexão existente, você pode estabelecer um túnel ssh reverso. Na linha de comando ssh, crie um encaminhamento remoto passando -R 22042:localhost:22
onde 22042 é um número escolhido aleatoriamente diferente de qualquer outro número de porta na máquina remota. Em seguida, ssh -p 22042 localhost
na máquina remota, você será conectado novamente à máquina de origem; você pode usar scp -P 22042 foo localhost:
para copiar arquivos.
Você pode automatizar isso ainda mais com RemoteForward 22042 localhost:22
. O problema é que, se você se conectar ao mesmo computador com várias instâncias do ssh, ou se alguém estiver usando a porta, não receberá o encaminhamento.
Se você não tiver ativado o encaminhamento remoto desde o início, poderá fazê-lo em uma sessão ssh existente. Digite Enter ~C
Enter -R 22042:localhost:22
Enter. Consulte "Caracteres de escape" no manual para obter mais informações.
Há também algumas informações interessantes neste segmento de falha do servidor .
Copiar colar
Se o arquivo for pequeno, você pode digitá-lo e copiar e colar da saída do terminal. Se o arquivo contiver caracteres não imprimíveis, use uma codificação como base64 .
remote.example.net $ base64 <myfile
(copie a saída)
local.example.net $ base64 -d> myfile
(colar o conteúdo da área de transferência)
Ctrl +D
Mais convenientemente, se você tiver o encaminhamento X ativo, copie o arquivo na máquina remota e cole-o localmente. Você pode enviar e receber dados de xclip
ou para xsel
. Se você deseja preservar o nome do arquivo e os metadados, copie e cole um arquivo morto.
remote.example.net$ tar -czf - myfile | xsel
local.example.net$ xsel | tar -xzf -
scp file.foo user@myclient.com:file.foo
: P