Subject: bug#43783: ssh-copy-id: line 254: /dev/null`: Permission denied

From: Maxim Cournoyer <[email-masked]>
Date: Wed, 21 Oct 2020 00:03:11 -0400

Hello,

Nathan Dehnel <[email-masked]> writes:

> ssh-copy-id errors out and then does not install the key
>
> bash-5.0$ ssh-copy-id pi@raspberrypi
> /home/nathan/.guix-profile/bin/ssh-copy-id: INFO: attempting to log in with
> the new key(s), to filter out any that are already installed
> /home/nathan/.guix-profile/bin/ssh-copy-id: INFO: 2 key(s) remain to be
> installed -- if you are prompted now it is to install the new keys
> /home/nathan/.guix-profile/bin/ssh-copy-id: line 251: warning:
> here-document at line 251 delimited by end-of-file (wanted `EOF')
> /home/nathan/.guix-profile/bin/ssh-copy-id: line 250: warning:
> here-document at line 250 delimited by end-of-file (wanted `EOF')
> /home/nathan/.guix-profile/bin/ssh-copy-id: line 254: /dev/null`:
> Permission denied
> /home/nathan/.guix-profile/bin/ssh-copy-id: line 260: EOF: command not found
> pi@raspberrypi's password:
>
> Number of key(s) added: 2
>
> Now try logging into the machine, with:   "ssh 'pi@raspberrypi'"
> and check to make sure that only the key(s) you wanted were added.

Could this be specific to the raspberrypi?  I cannot reproduce such
problem using a remote Guix System.  But I just tried using a Buildroot
target I had on hand, and I could reproduce something similar:

--8<---------------cut here---------------start------------->8---
$ ssh-copy-id target
/home/maxim/.guix-profile/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/home/maxim/.guix-profile/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
/home/maxim/.guix-profile/bin/ssh-copy-id: line 251: warning: here-document at line 251 delimited by end-of-file (wanted `EOF')
/home/maxim/.guix-profile/bin/ssh-copy-id: line 250: warning: here-document at line 250 delimited by end-of-file (wanted `EOF')
mkdir: cannot create directory ‘/etc/dropbear’: Permission denied
Pseudo-terminal will not be allocated because stdin is not a terminal.
Warning: Permanently added '10.42.0.243' (ECDSA) to the list of known hosts.
[email-masked]'s password: 
-sh: ssh-rsa: not found
--8<---------------cut here---------------end--------------->8---

I think it probably has to do with the script not finding the tools it
expects on the minimal (embedded) environments of the
Rasperrypi/Buildroot.  I'll try to have a closer look soon.

Thanks,

Maxim