EternalTerminal
EternalTerminal copied to clipboard
OSX to OSX Error starting ET process through ssh
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
Ah yeah I've seen this problem on OSX before. Can you symlink etterminal to /usr/bin or does OSX block that?
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 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
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).
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)
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.
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.