...
Host ioc-* cpu-*
User laci
SendEnv TERM=xterm
HostName %h.slac.stanford.edu
ProxyCommandProxyJump ssh -X gateway /usr/bin/nc %h %p <gateway>
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
...
Host gateway
User myself
ProxyCommand ssh -X firewall /usr/bin/nc %h %p
However, as Faisal has pointed out - in the most common use-case the `ProxyJump` directive is more convenient:
Host gateway
User myself
ProxyJump firewall
Now when you say
bash$ ssh cpu-b12-xyz
herethen ssh will transparently set up the multi-hop connection. Note that others options can be passed and work as expected, i.e., you can set up port forwarding to the target machine, e.g.,
...
Note: when operating over a slow connection then I get better response when I start a Xilinx hw_server on some machine that is close to the xvcSrv (rather than tunneling XVC from the remote machine):
Start xvcSrv
on a machine with fast connectivity to the FPGA
xvcSrv -t <target_ip>[:<udp_port>]
A pre-compiled binary is installed here
/afs/slac/g/reseng/xvcSrv/bin/<architecture>/
or here
/afs/slac/g/lcls/package/xvcSrv/<architecture>/
hw_server
on the same or a close-by machine (no special arguments necessary); if you run Vivado on-site then vivado takes care of this step and you may skip step 3.ssh
tunnel to get to the hw_server
. You can in fact use ssh
to directly launch the server and tunnel the connection (assuming hw_server
is on the PATH):ssh -L 3121:localhost:3121 gateway_machine hw_server
ssh
tunnel was opened on local port 3121 Vivado will find it)% open_hw_target -xvc_url <machine_where_xvcSrv_runs>:2542
...