How do I refer to my local computer for scp'ing when logged into remote? How do I refer to my local computer for scp'ing when logged into remote? unix unix

How do I refer to my local computer for scp'ing when logged into remote?


You can automatically figure out where you're logged in from by checking the environment variables SSH_CONNECTION and/or SSH_CLIENT. SSH_CONNECTION for example shows the client address, the outgoing port on the client, the server address and the incoming port on the server. See section ENVIRONMENT in man ssh

So, if you want to copy a file from the server to the client from which you're logged in from, the following (which infers the client ip by taking the first part of SSH_CONNECTION) should work:

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

Andreas


You are on the right track! The man page for scp should tell you how to do what you want: http://linux.die.net/man/1/scp

If you are having trouble understanding the man page, then I will attempt to instruct you:

  1. If you want to push a file from your local machine to a remote machine

    scp /path/to/local/file testuser@remote-host:/path/to/where/you/want/to/put/file

  2. If you want to pull a file from a remote machine to your local machine

    scp testuser@remote-host:/path/to/file/you/want/to/pull /path/on/local/machine/to/place/file

  3. If you are logged into a remote machine and want to push a file to your local machine (assuming you have the ability to scp to the local machine in the first place)

    scp /path/on/remote/machine/to/file testuser@local-host:/path/on/local/machine/to/put/file

Now, to determine what your local-host address is, you can check the IP address of your local machine or if your local machine has been provided a DNS entry, you could use it.

I.E., scp ~/myfile testuser@192.168.1.10:/home/testuser/myfile OR scp ~/myfile testuser@my-host:/home/testuser/myfile

For the DNS entry, provided you are on a correctly configured network, you would not need a fully qualified domain. Otherwise, you would need to do something like testuser@my-host.example.com:/home/testuser/myfile


Maybe you can build a solution around this:

who | grep $USER

When run on the remote computer, it should give a hint where you connected form.