El comando SCP de rutina falla (VPN/red activa)

El comando SCP de rutina falla (VPN/red activa)

Mi máquina de desarrollo funciona con Fedora (36).

Recientemente intenté enviar un archivo a un servidor remoto (CentOS 7) y recibí un mensaje de error críptico:

scp: dest open(""): No existe tal archivo o directorio

El comando se parece a:

scp -C foo.ext user@internal-vpn-ip:~/

Nada fuera de lo común, lo he hecho muchas veces a lo largo de los años sin problemas. Qué extraño, pensé, todo está en funcionamiento, pero scp no puede encontrar la ruta remota. Experimentando un poco, amplié la ruta del usuario remoto:

scp -C foo.ext user@remote-ip:/path/to/user/

y listo, ¡funcionó!

La pregunta es, ¿por qué~¿La expansión de ruta ya no funciona?

Respuesta1

Parece que en RedHat 9+ SCP ahora usa SFTP bajo el capó.

En elOpenSSH SCP en desusoEn la página hay una lista de incompatibilidades y advertencias relacionadas con los sistemas anteriores a RedHat 9 y RedHat 9+, incluido este fragmento relevante.

Otra diferencia entre los protocolos está en la expansión del procesamiento de rutas basado en ~. OpenSSH 8.7 y versiones posteriores admiten una extensión SFTP especial para hacer frente a esta expansión. Desafortunadamente, esta extensión no es compatible con versiones anteriores, por lo que copiar carpetas de una nueva versión de RHEL a una antigua fallará si se utiliza el procesamiento de ruta ~. En tales casos, la solución recomendada es proporcionar rutas absolutas.

Eso explica la necesidad de expandir manualmente la ruta. Molesto, pero al menos ahora sabemos por qué :)

información relacionada