This is not about using ssh as a proxy, but rather, using a proxy when you are SSHing to another host and using ProxyCommand (where we normally use nc as our proxy tool).
In newer versions of nc the syntax has changed to the following:
ssh -o ProxyCommand="nc -x 127.0.0.1:1234" %h %p user@host
The format must be like above in newer nc versions.
Just be sure to change the 1234 to the port of your SOCKS server and also 127.0.0.1 to the IP of the socks server
And of course user@host to the right info (eg. the username of your server and host = hostname or IP of your server)
If you try the old format you will get an ssh exchange identification error:
ssh -o ProxyCommand='nc --proxy-type socks5 --proxy 127.0.0.1:3000 %h %p' firstname.lastname@example.org
nc: invalid option -- '-'
This is nc from the netcat-openbsd package. An alternative nc is available
in the netcat-traditional package.
usage: nc [-46bCDdhjklnrStUuvZz] [-I length] [-i interval] [-O length]
[-P proxy_username] [-p source_port] [-q seconds] [-s source]
[-T toskeyword] [-V rtable] [-w timeout] [-X proxy_protocol]
[-x proxy_address[:port]] [destination] [port]
ssh_exchange_identification: Connection closed by remote host
ssh, proxy, nc, proxycommandthis, sshing, proxycommand, newer, versions, syntax, user, format, server, ip, info, eg, username, hostname, identification, someserver, invalid, netcat, openbsd, usage, bcddhjklnrstuuvzz, length, interval, proxy_username, source_port, toskeyword, rtable, timeout, proxy_protocol, proxy_address, destination, ssh_exchange_identification,