EternalTerminal icon indicating copy to clipboard operation
EternalTerminal copied to clipboard

OSX to OSX Error starting ET process through ssh

Open paul-brenner opened this issue 4 years ago • 6 comments

I'm stuck at the simple "Error starting ET process through ssh, please make sure your ssh works first" error. I'm on a OSX client and OSX server which I think is probably the source of my trouble. Are there additional steps that aren't in the instructions to install?

It took me some hunting for how to get verbose output on a mac but I finally dug out: et --logtostdout [email protected] This helped me get to this error: bash: line 1: etterminal: command not found

I ran: which etterminal and found that homebrew out it at: /usr/local/bin/etterminal

So based on this issue: https://github.com/MisterTea/EternalTerminal/issues/208 I added export "PATH=/usr/local/bin/etterminal:$PATH" to my .bash_profile (i added it to .bashrc) on both the client and the server. This did not fix the issue. If I open a new terminal and run the command etterminal it is found correctly and returns: Call etterminal with --idpasskey or --idpasskeyfile, or feed this information on stdin

So it really seems like etterminal is in my path, but running et --logtostdout [email protected] still fails with bash: line 1: etterminal: command not found

Here is the whole log output

[INFO 2020-02-28 06:20:20,122 client-main ParseConfigFile.hpp:1342] unsupported config line:   UseKeychain yes
, ignored
[INFO 2020-02-28 06:20:20,122 client-main ParseConfigFile.hpp:1342] unsupported config line:   AddKeysToAgent yes
, ignored
[INFO 2020-02-28 06:20:20,122 client-main ParseConfigFile.hpp:1342] unsupported config line:   IdentityFile ~/.ssh/id_rsa
, ignored
[INFO 2020-02-28 06:20:20,122 client-main ParseConfigFile.hpp:1342] unsupported config line: 	SendEnv LANG LC_*
, ignored
[INFO 2020-02-28 06:20:20,122 client-main TerminalClientMain.cpp:163] Parsed ssh config file, connecting to DSbox-co.synology.me
[INFO 2020-02-28 06:20:20,154 client-main TcpSocketHandler.cpp:89] Connected to server: dsbox-co.synology.me using fd 7
bash: line 1: etterminal: command not found
Error starting ET process through ssh, please make sure your ssh works first

paul-brenner avatar Feb 28 '20 11:02 paul-brenner

Ah yeah I've seen this problem on OSX before. Can you symlink etterminal to /usr/bin or does OSX block that?

MisterTea avatar Feb 28 '20 15:02 MisterTea

Thanks so much for the help! Unfortunately I get ln: /usr/bin/etterminal: Operation not permitted even with sudo. look pretty blocked. It sounds like it could be possible if I turn off System Integrity Protection (as mentioned but strongly recommended against here https://superuser.com/a/1168775 ). But I'd love to troubleshoot an option that isn't that drastic. I'm hoping that coming out of this we can give reasonable steps to anyone else trying to get set up on ET on a Mac with a setup similar to mine and i would hate to have to tell people to do something so strongly recommended against. Think that is the only option?

paul-brenner avatar Feb 29 '20 00:02 paul-brenner

@paul-brenner hmm, is your default shell bash? If you put the /usr/local/bin path in your .bashrc and .bash_profile, then it should find etterminal if bash is your main terminal

MisterTea avatar Mar 02 '20 22:03 MisterTea

Yes, default shell is bash, and as I mentioned in the first comment adding to .bashrc and .bash_profile do make it so etterminal can be found when i type etterminal at the command line, but et itself still provides the above error message. somehow, whatever et is trying to run, it is not using my .bashrrc and/or .bash_profile.

I asked a friend to try on his own independent mac to mac client/server setup and he is experiencing the same problem. I assume it may have to do with something in 10.15 catalina? Apple is encouraging people to start using zsh so I also added export "PATH=/usr/local/bin/etterminal:$PATH" to .zshenv with no success (even though I don't use zsh yet myself).

paul-brenner avatar Mar 03 '20 10:03 paul-brenner

I can successfully connect macOS et server from Archlinux et client with zsh shell. I add the following (content of /etc/zprofile) to ~/.zshenv. etterminal was searched by et/ssh before sourcing /etc/zprofile or ~/.zprofile.

 if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

path_helper exports /usr/local/bin (as part of many paths)

For bash, according to this source and as et uses interactive login shell, you might have to export the path in /etc/profile. You have to export just the directory path (do not include the etterminal) e.g. export PATH=/usr/local/bin:$PATH

I don't know it is required or not, but do not forget to restart et server i.e. sudo brew services restart mistertea/et/et

For technical details,

  • error message

zsh:2: command not found: etterminal Error starting ET process through ssh, please make sure your ssh works first

  • server: macOS 10.15.5, iterm2 3.3.11, zsh 5.8, et 6.0.7 (via brew)
  • client: Archlinux, konsole 20.04.1, zsh 5.8, et 5.0.7 (via AUR)

twnaing avatar Jun 10 '20 17:06 twnaing

Using --prefix /usr/local/bin/etterminal on my et invocation from client helps, without needing to symlink the etterminal binary on the server to /usr/bin

from et --help

--prefix arg           Add prefix when launching etterminal on server
                             side

Even though it reads like it treats the value as a prefix but fwiw, it works when passed the full path to etterminal to invoke.

karanluthra avatar Nov 28 '20 02:11 karanluthra

The issue can be resolved with the --macserver option (or --terminal-path which recently replaced the --prefix option) give a fully qualified path to the etterminal binary on the server.

jshort avatar Dec 01 '22 18:12 jshort