Reputation: 6034
I've tried the most popular solution to this, namely using the -t parameter on ssh and running a command before bash initializes. Sadly, the script I am trying to run requires bash variables so this is not an option for me. These are the approaches I've tried:
Approach 1:
Just to show what I was trying above:
ssh -A me@proxy -t 'echo 0 | /usr/local/bin/hop-server.sh <parameters> && bash -l'
It sshes into the proxy but then it spits out a number of missing environment variables from the script.
Approach 2:
Added the script into ~/.bashrc:
if [ "$HOP" = "dev1" ]; then
/usr/local/bin/hop-server.sh <parameters>
fi
And to connect:
ssh -A me@proxy -t 'HOP=dev1 bash -l'
This does not spit out environment variables as missing, but the hop does not succeed and I am stuck in the proxy:
me@proxy:~$ ~/proxytodev1
Setting environment variables...
Setting project...
Resolving 'dev1'...
Connecting to 123.123.123.123...
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-63-generic x86_64)
* Documentation: https://help.ubuntu.com/
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
17 packages can be updated.
9 updates are security updates.
me@proxy:~$
Upvotes: 1
Views: 370
Reputation: 328810
You can pass environment variables to a process with this syntax:
foo=bar ./script.sh
will set foo
to the value bar
and pass it to the script. You can have as many of those name=value
pairs as you want.
Just be careful with variable expansion; depending on which quotes you use, variables are expanded locally and then sent to the remote side or they are sent as is and then expanded remotely.
Upvotes: 1
Reputation: 3887
You can use ssh config option SendEnv
ssh -o 'SendEnv HOP' ...
Note that ssh server must be configured to accept it (AcceptEnv
in sshd).
Alternatively, you can use the .ssh/environment
file on the server side to set variables you want to be present on the ssh connection:
HOP=<destination>
For the server to accept it, you must set to true the PermitUserEnvironment
sshd config option.
Upvotes: 2