[staging] openssh: Fix EOF: command not found

This commit is contained in:
yoctocell 2020-11-19 09:15:23 +01:00 committed by Frederik Rietdijk
parent 1bec9d20da
commit 4c8c8d2ce5
2 changed files with 24 additions and 0 deletions

View file

@ -53,6 +53,9 @@ stdenv.mkDerivation rec {
./dont_create_privsep_path.patch
./ssh-keysign.patch
# See https://github.com/openssh/openssh-portable/pull/206
./ssh-copy-id-fix-eof.patch
]
++ optional withGssapiPatches (assert withKerberos; gssapiPatch);

View file

@ -0,0 +1,21 @@
diff --git a/contrib/ssh-copy-id b/contrib/ssh-copy-id
index 392f64f..a769077 100644
--- a/contrib/ssh-copy-id
+++ b/contrib/ssh-copy-id
@@ -247,7 +247,7 @@ installkeys_sh() {
# the -z `tail ...` checks for a trailing newline. The echo adds one if was missing
# the cat adds the keys we're getting via STDIN
# and if available restorecon is used to restore the SELinux context
- INSTALLKEYS_SH=$(tr '\t\n' ' ' <<-EOF)
+ INSTALLKEYS_SH=$(tr '\t\n' ' ' <<-EOF
cd;
umask 077;
mkdir -p $(dirname "${AUTH_KEY_FILE}") &&
@@ -258,6 +258,7 @@ installkeys_sh() {
restorecon -F .ssh ${AUTH_KEY_FILE};
fi
EOF
+ )
# to defend against quirky remote shells: use 'exec sh -c' to get POSIX;
printf "exec sh -c '%s'" "${INSTALLKEYS_SH}"