Cómo transferir archivos a través de ssh mientras ya está ssh'd en el servidor

12

Transfiero archivos usando este comando

scp <localfile> user@host:<destination>

El comando anterior solo funciona cuando no estoy en el servidor.

¿Cómo transfiero archivos locales a la máquina host cuando ya estoy conectado?

Yo ssh en el uso ssh user@hostname

Omnipresente
fuente
2
Que sistema operativo Abra otra terminal y use el comando scp
Impulss
1
es centOS. Eso es lo que he estado haciendo hasta ahora. Solo esperaba algo más conveniente.
Omnipresente

Respuestas:

5

Buena pregunta. scpde nuevo, pero al revés. Lo hice y aquí está:

chris@local ~$ ls hos*
hosts
chris@local ~$ ssh remote
Last login: Fri Mar  8 15:52:25 2013 from local
chris@remote ~$ scp chris@local:hos* .
chris@local's password: 
hosts                                              100% 1850     1.8KB/s   00:00    
chris@remote ~$ ls hos*
hosts
chris@remote ~$ 

editado para agregar: como se señala en los comentarios, esto requiere que la computadora remota pueda acceder a la computadora local. Y sshd o (openssh-server) deben instalarse y ejecutarse en la máquina local.

Chris K
fuente
2
Esto supone que la máquina local es accesible desde la remota y esto no siempre es cierto.
Laurent
Sin embargo, si es cierto, funcionará bien.
daviewales
3

Sería útil saber qué está ejecutando en la máquina host. Si estás usando Linux,

scp user@host:/path/myfile .

Deberia trabajar.

Josh
fuente
user @ host es la máquina remota de lo que entendí en la pregunta, por lo que este comando no copiará archivos de la máquina local a la remota sino de la remota a la local si no SSHed en el host y se copiará de la remota a sí mismo si SSHed.
Laurent
Creo que hay cierta ambigüedad en la pregunta. Para mí, user@hostparece referirse a la computadora que no está controlando actualmente. Entonces, cuando el OP no está conectado a la computadora remota, entonces user@hostes la computadora remota. Cuando el OP se registra en la computadora remota, entonces user@hostes la computadora local. Si mis suposiciones son correctas, entonces esta respuesta tiene sentido.
daviewales
Así es exactamente como interpreté la pregunta también, daviewales. Además, tiene razón, user @ host representaría cualquier estación de trabajo desde la que no esté trabajando actualmente, en mi opinión. Debatí si dejar esto más claro en mi respuesta, pero pensé que estaría implícito.
Josh
De todos modos, incluso si user @ host representa la máquina local cuando el usuario está conectado a la máquina remota (es poco probable ya que el OP dijo que quiere transferir archivos locales a la máquina host), esto funcionará solo si se puede acceder a la máquina local desde el control remoto encendido (generalmente si están en la misma LAN) y no en un escenario donde la máquina remota está en Internet y la máquina local no tiene IP fija.
Laurent
1

Si tiene un camino de regreso a su máquina local (su máquina local es accesible desde la remota, generalmente cuando ambas máquinas están en la misma LAN), debería funcionar el uso de scp desde la máquina remota ( scp local:/path-to-file .).

Si no se puede acceder a su máquina local desde la remota (generalmente cierto si su control remoto es un VPS en Internet y su máquina local tiene una IP dinámica), su mejor manera es abrir una nueva terminal en la máquina local y copiar el archivo.

Otra forma, más complicada y ciertamente no necesaria solo para copiar archivos sería hacer una VPN entre las máquinas (o redes) para que ambas máquinas sean accesibles desde la otra y se pueda usar scp desde una máquina o desde la otra.

Laurent
fuente
0

mientras está conectado al sistema remoto (más fácil simplemente cd en la ubicación del archivo) sudo scp ubicación_archivo / nombre_archivo usuario @ host: ubicación_archivo

mientras está desconectado del sistema remoto sudo scp authoried_user @ hostname: file_location / file_name new_location_on_local_machine

NOTA: recuerde, mientras se desconecta de los sistemas remotos, si se trata de un nuevo terminal, la primera contraseña será la contraseña de sudo, la segunda contraseña será la contraseña de usuario autorizado. si ha sudodado anteriormente en ese terminal en particular, entonces solo necesita la contraseña de usuario autorizado que necesita. cuidado con esto, lo hace complicado.

obalolu
fuente