É um caso especial que raramente é útil. Mas detectar isso seria difícil, prejudicial e inútil.
Difícil, porque você sabe que é o mesmo usuário na mesma máquina? Há muitos casos raros de borda em que até ssh $USER@localhost não entra em contato com a mesma conta e o programa scp nem sempre está em posição de dizer. Por exemplo:
-
localhost não aponta para a máquina local, devido a um DNS não convencional mas legal ou alias ssh_config .
-
ssh é invocado dentro de um chroot, mas o servidor ssh está rodando fora do chroot, ou em um chroot diferente.
- A porta ssh na máquina local salta as conexões para outra máquina.
-
scp é invocado de uma sessão com privilégios reduzidos; no site remoto de scp $USER@localhost , os privilégios padrão do usuário são mantidos.
Nocivo porque complicaria muito o comportamento de scp . Em vez de “copiar arquivos, usando o SSH como o transporte”, ele se tornaria “arquivos de cópia, usando o SSH como o transporte, exceto se a origem e o destino forem detectados como sendo o mesmo usuário na mesma máquina”. Que nojo. Então, se alguém escrever um script que use o scp e usar os nomes da máquina e do usuário como parâmetros, o script deverá incluir um caso especial: se a origem e o destino forem a mesma conta na mesma máquina, ligue para cp instea de scp . O roteirista teria que corresponder exatamente à lógica de scp .
Inútil porque só pegaria um erro de digitação possível entre muitos. Porque se importar? Você pode ter digitado o nome de um servidor diferente ou digitado incorretamente o caminho ou o nome de usuário, etc.