2013-08-29 13 views
9

Questa deve essere una domanda molto semplice, ma sto cercando di spostare un file da un server remoto al mio computer locale, mentre si è connessi al telecomando (tramite ssh).Come faccio a fare riferimento al mio computer locale per scp'ing quando loggato in remoto?

Tutte le guide dicono di usare solo

scp [email protected]:/path/to/file local/path/to/file 

Ma, per quanto posso capire, che sarebbe quello che vorrei utilizzare dalla mia macchina locale. Dalla macchina remota, suppongo che voglio usare qualcosa come

scp /path/to/file my_local_computer:/local/path/to/file 

ma (se questo è anche corretto) come faccio a sapere cosa mettere dentro per my_local_computer?

Grazie!

+1

Grazie. Ho "provato" per un po 'di tempo e ho cercato un bel po' di manuali e forum. – Asbestos

risposta

7

È possibile capire automaticamente da dove si è effettuato l'accesso controllando le variabili di ambiente SSH_CONNECTION e/o SSH_CLIENT. SSH_CONNECTION mostra ad esempio l'indirizzo del client, la porta in uscita sul client, l'indirizzo del server e la porta in entrata sul server.Vedere la sezione AMBIENTE in man ssh

Quindi, se si desidera copiare un file dal server al client dal quale si è effettuato l'accesso da, il seguente (che deduce l'ip del client prendendo la prima parte di SSH_CONNECTION) dovrebbe lavoro:

scp /path/to/file $(echo $SSH_CONNECTION | cut -f 1 -d ' '):/local/path/to/file 

Andreas

0

Forse si può creare una soluzione intorno a questo:

who | grep $USER 

Quando eseguito sul computer remoto, si deve dare un suggerimento in cui si forma collegata.

2

Sei sulla strada giusta! La pagina man per SCP dovrebbe dirvi come fare ciò che si vuole: http://linux.die.net/man/1/scp

Se si hanno difficoltà a capire la pagina man, quindi cercherò di istruirvi:

  1. Se si vuole spingere un file dal computer locale a un computer remoto

    scp /path/to/local/file [email protected]:/path/to/where/you/want/to/put/file

  2. Se si vuole tirare un file da un computer remoto sulla macchina locale

    scp [email protected]:/path/to/file/you/want/to/pull /path/on/local/machine/to/place/file

  3. Se si è connessi a una macchina remota e vuole spingere un file sul computer locale (ammesso che abbiate la possibilità di SCP per la macchina locale, in primo luogo)

    scp /path/on/remote/machine/to/file [email protected]:/path/on/local/machine/to/put/file

Ora, per determinare qual è l'indirizzo di host locale, è possibile controllare l'indirizzo IP del proprio computer locale o se al computer locale è stata fornita una voce DNS, è possibile utilizzarlo.

cioè scp ~/myfile [email protected]:/home/testuser/myfile OR scp ~/myfile [email protected]:/home/testuser/myfile

Per la voce DNS, a condizione che siete su una rete configurata correttamente, non avrebbe bisogno di un dominio completo. Altrimenti, dovresti fare qualcosa come [email protected]:/home/testuser/myfile

+0

Ho una domanda: come scp da una macchina con IP locale. Ho sshed tre volte per accedere a questa macchina. È possibile scrivere qualcosa del genere: 'scp [email protected]: [email protected]: [email protected]:/directory/to/the/file/mylocal/address'. nota che c'è un nome utente per le macchine – Abolfazl

Problemi correlati