É 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.