Necesito copiar el archivo entre máquinas Linux. El problema que el usuario que uso para iniciar sesión ( myuser
) es diferente del usuario que puede acceder al archivo.
Si solo voy ssh
a la máquina, puedo cambiar el uso del usuario sudo su someuser
, ¿puedo hacerlo de alguna manera scp
?
Mientras usaba WinSCP, logré hacerlo, configurando SCP / Shell, por lo que creo que debe haber una forma similar de hacerlo a través de shell puro.
ssh
y ejecutarscp
, algo como estossh myuser@host "sudo scp ..."
:?Respuestas:
Suponiendo que el usuario con el que PUEDE ssh no necesita una contraseña para sudo su en el usuario de destino, puede intentar esto:
... Tenga en cuenta que todavía no estoy convencido de que simplemente configurar
targetuser
para permitir solo scp / sftp / rsync a través de SSH y usar un par de claves RSA para la autenticación no sea una opción mucho mejor.fuente
tar -cvf - * | ssh user@host "sudo -u targetuser tar -C /targetdir -xf -"
para un montón de archivos-z
o-j
no dependiendo de la velocidad de conexión y el hardware de la computadora en ambos lados ...Si conoce las credenciales del otro usuario (
someuser
), puede especificarlas en suscp
llamada.De la
man scp
página:Aquí está la sintaxis utilizada:
Ejemplo
Desea copiar el archivo
/home/foo/bar
desdehost1
su host local, utilizando el usuariosomeuser
, aquí está el comando:Se le solicitará autenticación (contraseña, claves, ...).
fuente
Probablemente sea posible , pero diría que es una forma muy incómoda de hacerlo.
Mi primera sugerencia es iniciar sesión como ese usuario. Incluso si no tiene la contraseña de ese usuario, puede agregar su propia clave ssh pública a sus claves_autorizadas y luego scp usando su clave, como muestra rahmu.
Si eso no es posible, mi segunda sugerencia es iniciar sesión por ssh, sudo al usuario y crear un archivo tar de los archivos que desea copiar y ponerlo en algún lugar que su propio usuario pueda leer. Entonces scp abajo ese tarfile.
fuente
utilizar
-S
en elscp
comandopor ejemplo, /superuser/87597/how-to-perform-scp-as-a-sudo-user
le permitirá ejecutar un script, como creo que estaba haciendo con el caso de uso de winscp.
fuente
Traté de dar algunos ejemplos en el siguiente artículo. La idea básica no es usar scp, sino usar dd y ssh con sudo user switch. Mira:
http://hmmss.wordpress.com/2014/07/02/ssh-and-scp-with-another-user
fuente