Tengo un archivo en el servidor A (que está detrás de un NAT, por lo que no es directamente direccionable). El archivo debe copiarse en el servidor B en un directorio restringido a root. Tengo una cuenta en el servidor B con privilegios de sudo. ¿Cuál es la sintaxis para el comando scp?
command-line
security
sudo
scp
Neil
fuente
fuente

Respuestas:
Primero, debe copiar el archivo en un lugar donde tenga acceso de escritura sin sudo,
Luego mueva el archivo usando sudo
Si no tiene un lugar de escritura, cree un directorio temporal con permiso de escritura para su usuario.
fuente
chmod 777generalmente es la forma incorrecta de hacerlo. Considere lo que podría suceder si alguien más iniciara sesión y supiera que está a punto de ejecutar este código.ssh sudono funciona para mí, se queja de "no hay tty presente y no se ha especificado el programa askpass"?serverbo debe hacerlo porssh serverbseparado, luego ejecutarsudo ...después de iniciar sesión.Con SCP, debe hacerlo en dos pasos, sin embargo, puede hacerlo en uno con rsync de la siguiente manera:
Nota: Esto requiere la
NOPASSWDconfiguración de sudo. Si tiene que ingresar la contraseña para sudo, entonces se necesitan los dos pasos.Para copiar el directorio, debe agregar el
-rparámetro. Y-vpara salida detallada.Para utilizar el método anterior con credenciales, debe agregarlas a su
~/.ssh/configarchivo, por ejemplofuente
sudo: sorry, you must have a tty to run sudoarreglado por-e "ssh -tt".-e "ssh -tt", entiendoprotocol version mismatch -- is your shell clean?. ¿Alguna pista sobre cómo solucionar eso?Puede usar ssh y tar para solucionar esto:
Esto primero actualiza su marca de tiempo de sudo (solicitando una contraseña si es necesario, lo que requiere un tty (
ssh -t)), y luego usa sudo para crear un tarball de forma remota y extraerlo localmente."tar" en RedHat 5 requiere que las opciones "- preservar" vengan después del comando "xpsf -".
fuente
tar: Invalid replacement string, eliminarlo-sparece solucionarlo (sde todos modos, no estoy seguro de para qué lo necesitas ). Muchas gracias; Esto es asombroso.tty_ticketsser deshabilitado, ¿correcto?Puede usar sftp con el comando sudo, por ejemplo:
fuente
Si necesita escribir la contraseña para sudo cada vez, puede guardarla en un archivo:
y luego envíelo junto con el archivo fuente.
Puede usar en
teelugar despongesi no tiene másutils.fuente
Primero, debe copiar el archivo en un lugar donde tenga acceso de escritura sin sudo. Puede realizar los siguientes dos pasos.
Paso 1:
scp filename newserverPaso 2:
ssh newserver sudo mv filename /path/to/the/destinationpara más información lea el tutorial scp
fuente
Copiará un archivo específico desde la fuente a / tmp / en el servidor actual
fuente