10
3
I am trying to put my multi-hop ssh command into the ssh .ssh/config file.
This is my connection graph: laptop (i am here) ------> userver -------> workstation
I have put the ssh public rsa keys into 'userver' and 'workstation'. At this moment i can connect by typing this line:
ssh -A -t userserver@userver ssh -A userworkstation@workstation
I would like however, to be able to use the capabilities of the config file in ~/.ssh/config to reach the same effect but using one simple command, which would also allow me to do fast copy with 'scp'. The only problem is that 'userver' does not have the "nc" command and i do not have superuser there, just control of my home folder. Nevertheless, i tried some things:
I've have this config file in my laptop (~/.ssh/config):
# laptop config file
Host userver
Hostname userver_hostname
port 22
User server_user
Also another config file in the userver (~/.ssh/config)
# userver config file
Host workstation
Hostname workstation_hostname
port 22
user workstation_username
With this config files i can connect as
ssh -A -t userver ssh -A workstation
which is an improvement, but not sufficient. I tried adding another host in my laptops config, like this:
Host hop
ProxyCommand ssh -A -t userver ssh -A workstation
Then, when i do
ssh hop
i get the following output with errors and cannot connect:
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
-bash: line 1: $'SSH-2.0-OpenSSH_6.4\r': command not found
Any ideas?
-Y
is prefered instead of-X
for secured X11forwarding. – Lord Loh. – 2017-10-05T23:46:35.567Hi MariusMatutiae, i tried your solution but as i said in the original post the 'userver' node lacks the program netcat (nc). So i get this error: ssh workstation bash: nc: command not found ssh_exchange_identification: Connection closed by remote host – labotsirc – 2013-12-13T17:48:24.173
Can't you install it? – MariusMatutiae – 2013-12-13T17:50:22.830
Unfortunately no, i do not have superuser on 'userver', that is why i was trying an alternate method. I dont get it, if this works "ssh -A -t userver ssh -A workstation", why the same put on ProxyCommand does not? – labotsirc – 2013-12-13T17:52:36.503
1@labotsirc I have slightly amended my answer. Hope you may find it useful. Alternatively, you may try installing netcat locally (i.e., only for you!), adding in the line Proxycommand .... the full path to your own copy of netcat. I am not sure this works, because of permissions, but you may try it. – MariusMatutiae – 2013-12-13T19:13:02.120
Copied my netcat binary, removed the -q0 option because it was giving errors, and now it works! Thanks – labotsirc – 2013-12-13T19:57:18.880