Need to redirect 3 bash code files (possibly more in the future) to SSH, escaping them (within the same SSH session) to execute them on remote host. Perfectly fine to list bash code files manually.
First 2 files: functions1
, functions2
contains only Bash functions.
chroot_script.sh
contains both Bash functions and code outside of a function (scripts are way to long to post here).
Sample code for the context:
cat "functions1" <(echo) "functions2" <(echo) "chroot_script.sh" | ssh -tt ${ssh_command_target} "bash -s"
chroot_script.sh
uses some functions from both "functions1" and "functions2".
<(echo)
is to add new line between bash code files (can be removed if there's a better/another way to add new line between bash code files).
I believe the above SSH line/code doesn't work because Bash code files need to be escaped. bash -s
just found on internet (don't currently know if I really need -s
).
Tried first redirecting like this:
ssh -tt ${ssh_command_target} <"functions1" <"functions2" <"chroot_script.sh"
The above seems to only redirect 1 of the files in the list.
Do need ssh -tt
because inside chroot_script.sh
there's Bash code doing chroot
on remote host (not the subject of this question, rather showing it for context):
cat << EOF | sudo chroot ${mount_root_path} Bash code EOF
Expected result: Redirect 3 bash code files to SSH escaping them (within the same SSH session) with new line between each file.
OpenSSL 3.0.13 (same version on the client and SSH server). I have full control of both machines.
Thank you for reading!
Update: /etc/sudoers content (first comments removed):
Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" # This fixes CVE-2005-4890 and possibly breaks some versions of kdesu # (#1011624, https://bugs.kde.org/show_bug.cgi?id=452532) Defaults use_pty # This preserves proxy settings from user environments of root # equivalent users (group sudo) #Defaults:%sudo env_keep += "http_proxy https_proxy ftp_proxy all_proxy no_proxy" # This allows running arbitrary commands, but so does ALL, and it means # different sudoers have their choice of editor respected. #Defaults:%sudo env_keep += "EDITOR" # Completely harmless preservation of a user preference. #Defaults:%sudo env_keep += "GREP_COLOR" # While you shouldn't normally run git as root, you need to with etckeeper #Defaults:%sudo env_keep += "GIT_AUTHOR_* GIT_COMMITTER_*" # Per-user preferences; root won't have sensible values for them. #Defaults:%sudo env_keep += "EMAIL DEBEMAIL DEBFULLNAME" # "sudo scp" or "sudo rsync" should be able to use your SSH agent. #Defaults:%sudo env_keep += "SSH_AGENT_PID SSH_AUTH_SOCK" # Ditto for GPG agent #Defaults:%sudo env_keep += "GPG_AGENT_INFO" # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "@include" directives: @includedir /etc/sudoers.d
ls sudoers.d/ README