2009-04-07 15 views
7

Me gustaría mantener mi comando ssh oculto/disfrazado de otros usuarios.Ocultar argumentos de ps

Ejemplo:

ssh [email protected] -i /my/private/key 

Desafortunadamente esto se van a plantear en el listado ps y otros usuarios podrán ver el archivo de clave privada que estoy usando. ¿Hay alguna forma de evitar esto?

(Se inicia la sesión como el mismo usuario que soy)

+3

Observación: No compartir el mismo ID de inicio de sesión si no desea compartir los mismos secretos. Los ID de usuario son para individuos, no para grupos. –

Respuesta

12

Si están conectados como usted, hay básicamente poco que puede hacer para evitar que aprendan esa información. Si tiene Linux, tendrá acceso a sus entradas/proc y podrá aprender esta información fácilmente.

También puede:

  • borrar todos sus archivos.
  • envíe el correo a su nombre para insultar al CEO de su empresa.
  • acceda a todos sus archivos y al historial de línea de comandos, si corresponde.
  • miríadas de cosas más.

Esta no es una forma viable de protegerse. Primero debe resolver el problema del usuario idéntico.

0

No es lo que les permite conocer la ubicación del archivo de clave privada no es mucho de una característica de seguridad - que el acceso realmente no debería haber leído de todos modos, entonces no importa si saben dónde está o no. En general, si tiene control sobre el origen de la aplicación, puede sobrescribir la ubicación de la memoria que contiene los argumentos de la línea de comando, para que pueda modificarlos a algo "inocuo".

3

En Linux, se puede hacer algo como

strncpy(argv[0], "mynewcmdlinehere", strlen(argv[0])); 

No sé acerca de otros sistemas Unix, lo siento.

+0

No sabía esto. Tan fácil. ¡Gracias! –

+0

Lo intenté en Linux pero ps aún muestra 'a.out'. ¿Me perdí algo? – hek2mgl

3

Ocultar la línea de comandos requeriría un script, por lo que es Catch-22, porque otras personas que tengan el mismo usuario tendrán acceso a ese script.

La solución es bastante simple: Utilizar la clave con contraseña.(howto)

+3

Incluso cuando se usa una clave con una frase de contraseña, otro proceso ejecutándose como el mismo usuario podría leer la contraseña y/o la clave descifrada de su proceso ssh-agent o ssh. No hay seguridad contra los procesos que se ejecutan con el mismo uid. – ephemient

0

Desde el fondo de mi memoria, recuerdo haciendo somthing similares hace mucho tiempo

En primer lugar, crear un script de shell, llamada ps que corre ps y se grep todas las líneas excepto los que contengan ssh (o algo coincidente) y poner esto en un lugar seguro (~/bin/ps)

Agregue ~/bin/a su ruta como la primera ubicación para buscar.

por supuesto, que todavía podría usar/usr/bin/ps (o donde su ubicación es) de forma explícita

A modo de advertencia, esto es todo de la memoria y no tengo una máquina Unix para probarlo en ... lo siento

+0

Esto no hace nada para evitar que otros "usuarios" (que están usando el mismo uid, por razones erróneas desconocidas) usen el "ps" original directamente - ni es posible evitarlo. – ephemient

2

Incluso si oculta la línea de comandos, el usuario puede ejecutar lsof para ver todos los archivos que su proceso ssh ha abierto, que incluirá el archivo de identidad.Sin embargo, si oscurecer la línea de comando es realmente el objetivo final, puede iniciar un agente clave, cargar la identidad en el agente y luego usar ssh con ese agente. La ruta al socket que utiliza el agente está controlada por una variable de entorno.

Esto de ninguna manera es seguridad. Pax tiene razón: el problema de "iniciar sesión como el mismo usuario" es lo que realmente debería resolverse aquí. Deje de usar la cuenta de otra persona. ;)

-1

Usted puede configurar su clave privada a través de su archivo ~/.ssh/config que está asegurado por 0700. Aquí es ejemplo de ~/.ssh/config:

Host myhost.com 
    IdentityFile /home/maxcohan/.ssh/github.com.id_rsa 
+1

dice que todos usan la misma cuenta de usuario. chmod no funcionará –

Cuestiones relacionadas