Come ssh e scp direttamente attraverso un server?


2

Mi collego al server2 nel modo seguente:

home$ ssh server1
server1$ ssh server2
server2$

A volte ho anche bisogno di scp in questo modo, che richiede un po 'di tempo extra:

home$ ssh server1
server1$ scp server2:file .
server1$ exit
home$ scp server1:file .

C'è un modo per farlo in un comando da casa? Sto usando l'autenticazione a chiave pubblica, ma sarebbe bello se funzionasse anche con le password.

Risposte:


1

Ti suggerisco di usare MobaXterm: devi solo

  • scaricalo da qui: http://mobaxterm.mobatek.net/download-home-edition.html
  • Clicca su "Nuova sessione" e scegli "ssh"
  • Specificare il proprio nomecomputer o indirizzo IP "server2" nel campo "Nome host remoto"
  • Specificare il proprio nomecomputer o indirizzo IP "server1" nel campo "Rimbalzo SSH (connessione tramite un server ssh gateway)"

Questo lancerà un nuovo comando SSH, direttamente sul tuo computer "server2". Sulla sinistra della finestra, avrai anche accesso a uno strumento grafico per il trasferimento di file SFTP che sarà anche collegato direttamente a "server2".


Sembra un bel programma. Tuttavia, non ho sempre un server X in esecuzione sul server originale.
Tim

OK, ma non è richiesto nessun server X: puoi scegliere di disattivarlo nelle impostazioni di MobaXterm, se lo desideri.
Didier

Ok, dal nome ho appena pensato che non fosse un programma da riga di comando. Lo guarderò.
Tim

1

È possibile utilizzare il tunneling SSH, in questo modo:

ssh -f server1 -L 8888:server2:22 -N

Questo apre un socket sul computer locale, sulla porta 8888 (supponendo che nessun altro processo stia usando quella porta), che collega la connessione al server2 (supponendo che SSH sia in esecuzione sulla porta 22) attraverso server1. Il -N e -f le bandiere dicono a SSH di passare allo sfondo (dovrai interrompere il processo se vuoi fermare il tunnel).

Ora puoi scpare file da server2 solo facendo

scp -P 8888 localhost:file

0

home$ server1 "ssh server2"

ma quando coinvolge più server, l'escape della stringa di comando sarà doloroso.


0

Usa SOCKS5 con un tunnel dinamico

Creare un tunnel ssh dinamico sulla prima macchina. Quindi, utilizzare la prima connessione come proxy SOCKS5 per raggiungere il secondo host sulla rete remota.

Questo è facile da configurare tramite mastice. Puoi riutilizzare il proxy tutte le volte che vuoi. Alcuni programmi supportano direttamente SOCKS5. Come mastice e ssh.

Sotto Linux, i proxychain possono essere usati per proxificare i programmi che non supportano SOCKS5 in modo nativo. Sotto Windows, mi piace Proxycap. Funziona bene con RDP.

Per impostare questo usando Putty:

Nella prima pagina delle impostazioni dell'host, sotto i tunnel:

  • creare un tunnel dinamico
  • Impostare la porta su 9050.
  • Lascia vuota la parte di destinazione, poiché è dinamica.
  • Salva le tue impostazioni. (Fatto dalla pagina della sessione.)

Quindi, nella configurazione per il secondo host, sotto proxy:

  • Seleziona SOCK55.
  • Modificare il nome host del proxy in 127.0.0.1
  • Impostare la porta su 9050
  • Quindi imposta il resto della sessione normalmente
  • Salva le tue impostazioni

Per connettersi al secondo host. Dovrai prima connetterti e accedere al primo host. Quindi dovresti essere in grado di connettersi al secondo host tramite la connessione ssh proxy,

Puoi anche farlo dalla riga di comando con una voce ssh_config: http://www.undeadly.org/cgi?action=article&sid=20070925181947

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.