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 777
generalmente 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 sudo
no funciona para mí, se queja de "no hay tty presente y no se ha especificado el programa askpass"?serverb
o debe hacerlo porssh serverb
separado, 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
NOPASSWD
configuració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
-r
parámetro. Y-v
para salida detallada.Para utilizar el método anterior con credenciales, debe agregarlas a su
~/.ssh/config
archivo, por ejemplofuente
sudo: sorry, you must have a tty to run sudo
arreglado 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-s
parece solucionarlo (s
de todos modos, no estoy seguro de para qué lo necesitas ). Muchas gracias; Esto es asombroso.tty_tickets
ser 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
tee
lugar desponge
si 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 newserver
Paso 2:
ssh newserver sudo mv filename /path/to/the/destination
para más información lea el tutorial scp
fuente
Copiará un archivo específico desde la fuente a / tmp / en el servidor actual
fuente