Run Command Before Starting SSH Connection
This a quick hack I found while I was looking to run a knock script before connecting to servers which I have the SSH service protected with a knock sequence. In my setup I used the ProxyCommand option in the ssh_config file to loop over my loop-back interface.
Host server1
User root
Hostname server1.com
ProxyCommand bash -c 'knock-script %h; sleep 1; ssh 127.0.0.1 -W %h:%p'
# in the above
# %h is a place holder for the hostname i.e server1.com
# and i added 1 sec delay before running the ssh tunnel
# to give the script on the server side time to validate my knock.
SSHing to localhost is a bit too much IMO, you can replace it with nc %h %p
good point, thanks.
So I want to have my knock-script output to the terminal before running ssh, and that doesn’t seem to be working. Any idea why?
Need more information, maybe your ssh daemon is not running. try using `nc` instead.