quantumsheep / sshs

Terminal user interface for SSH
MIT License
963 stars 32 forks source link

fail with `config:32: config variable before Host variable` #57

Open simkimsia opened 1 year ago

simkimsia commented 1 year ago

similar to #1

Include ~/.orbstack/ssh/config

ControlMaster auto
ControlPath /tmp/%r@%h:%p

Host ssh-cpopv2
  HostName abc..
jingfelix commented 12 months ago

I met the same problem with

Include ~/.orbstack/ssh/config

ForwardX11 yes

I guess sshs does not support ForwardX11 yes.

userwiths commented 9 months ago

I believe this happens because of the currently used parser, more precisely here.

I though about opening an issue, but it looks like it is advised in the OpenSSH specification to put the Host's first and other parameters after them. image

Maybe, @simkimsia you could try something like

Host ssh-cpopv2
  HostName abc..

Include ~/.orbstack/ssh/config

ControlMaster auto
ControlPath /tmp/%r@%h:%p

and tell us if thats the case.

NOTE: my config is looking like that, with the Include on top, and works correctly.

Include ~/.orbstack/ssh/config

Host ssh-cpopv2
  HostName abc..

ControlMaster auto
ControlPath /tmp/%r@%h:%p

As for the ForwardX11 if I put it at the very end of my config, it works correctly. Hope that solves your issue @jingfelix

Hope this helps.

jingfelix commented 9 months ago

@userwiths It works, thanks so much!

mblauser commented 5 months ago

This has plagued me for years while using sshs until recently discovering this unexpected config behavior.

The parser as currently implemented treats a "Host " section at the top of the config as immutable values, unchanged by more specific host entries. My initial understanding was that more specific host entries would override the "Host " section. What functions best is listing the "Host *" last, providing fallback defaults.

quantumsheep commented 4 months ago

Hey! Since sshs now has an homemade parser, is the issue fixed?