2009-04-07 4 views
7

Vorrei mantenere il mio comando ssh nascosto/mascherato da altri utenti.Nascondi argomenti da ps

Esempio:

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

Purtroppo questo verrà in su nella lista ps e gli altri utenti saranno in grado di vedere il file della chiave privata che sto usando. C'è un modo per aggirare questo?

(sono connessi come lo stesso utente come lo sono io)

+3

osservazione: non si dovrebbe condividere lo stesso ID di accesso se non si desidera condividere gli stessi segreti. Gli ID utente sono per gli individui, non per i gruppi. –

risposta

12

Se hanno eseguito l'accesso come te, è praticamente impossibile fare in modo che non imparino tali informazioni. Se sei su Linux, avranno accesso alle tue voci/proc e potranno imparare facilmente queste informazioni.

Possono anche:

  • eliminare tutti i file.
  • invia la posta a tuo nome per insultare il CEO della tua azienda.
  • accedere a tutti i file e alla cronologia della riga di comando, se presenti.
  • una miriade di altre cose.

Questo non è un modo valido per proteggersi. È necessario prima risolvere il problema utente identico.

0

non permettendo loro di conoscere la posizione del file di chiave privata non è molto più di una caratteristica di sicurezza - hanno accesso in realtà non dovrebbe aver letto ad ogni modo quindi non importa se sanno dov'è o no. In generale, se si ha il controllo sul sorgente dell'applicazione, è possibile sovrascrivere la posizione di memoria tenendo gli argomenti della riga di comando, in modo da poterli modificare in qualcosa di "innocuo".

3

Su Linux, si può fare qualcosa di simile

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

Non so su altri sistemi Unix, mi dispiace.

+0

Non lo sapevo. Così facile. Grazie! –

+0

L'ho provato su linux ma ps mostra ancora 'a.out'. Ho perso qualcosa? – hek2mgl

3

Nascondere la riga di comando richiede uno script, quindi è Catch-22, perché altri ppl che hanno lo stesso utente avranno accesso a tale script.

La soluzione è abbastanza semplice: Utilizzare la chiave con la frase-chiave.(howto)

+3

Anche quando si utilizza una chiave con una passphrase, un altro processo in esecuzione come lo stesso utente potrebbe leggere la passphrase e/o la chiave decrittografata dal proprio processo ssh-agent o ssh. Non c'è sicurezza contro i processi in esecuzione con lo stesso uid. – ephemient

0

Dal retro della mia memoria, mi ricordo di aver fatto somthing simile molto tempo fa

In primo luogo, creare uno script di shell, chiamato ps che corre ps e sarà grep tutte le linee ad eccezione di quelli contenenti ssh (o qualcosa di corrispondenza) e mettilo in un luogo sicuro (~/bin/ps)

Aggiungi ~/bin/al percorso come prima posizione da cercare.

naturalmente, potrebbero ancora usare/usr/bin/ps (o dovunque la sua posizione è) esplicitamente

Come un avvertimento, questo è tutto a memoria e non ho una scatola di Unix per testarlo on ... sorry

+0

Questo non fa nulla per impedire ad altri "utenti" (che usano lo stesso uid, per ragioni sconosciute e sconosciute) di usare direttamente l'originale "ps" - né è possibile prevenirlo. – ephemient

2

Anche se si nasconde la riga di comando, l'utente può eseguire lsof per vedere tutti i file aperti dal processo ssh - che includeranno il file di identità.Se oscurare la riga di comando è davvero l'obiettivo finale, tuttavia, è possibile avviare un agente chiave, caricare l'identità nell'agente e quindi ssh utilizzando quell'agente. Il percorso del socket utilizzato dall'agente è controllato da una variabile di ambiente.

Questo non significa assolutamente sicurezza. Pax ha ragione: lo "stato di accesso come lo stesso utente" è ciò che davvero dovrebbe essere risolto qui. Smetti di usare l'account di qualcun altro. ;)

-1

È possibile impostare la propria chiave privata tramite il file ~/.ssh/config che è fissato dal 0700. Ecco esempio di ~/.ssh/config:

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

dice che tutti usano lo stesso account utente. chmod non funzionerà. –