O problema era o delimitador de término de linha no meu editor: ele usava \r\n sequence em vez de apenas \n . Assim, o último argumento do comando scp não foi apenas ~/ conforme exibido. Na verdade, foi ~/\r .
Então, em vez de passar um nome de diretório com uma barra (o que instruiria o comando a copiar um arquivo para esse diretório preservando o nome de um arquivo - o comportamento que eu esperava), mais alguns foram adicionados após a barra - um \r de caracteres, o que levou o comando a aceitá-lo como um novo nome para o arquivo que está sendo copiado.