Come abilitare ssh senza password solo per un particolare programma


2

Ho un requisito in cui voglio che l'utente del mio programma C ++ sia in grado di eseguire ssh senza password su una particolare macchina, ma lo stesso utente non dovrebbe essere in grado di eseguire ssh sulla stessa macchina attraverso un normale terminale / shell.

Risposte:


1

Su un sistema Unix, dovresti rendere eseguibile il setuid del programma che può essere eseguito ssh -i contro un file di identità altrimenti inaccessibile a un utente che esegue il programma. Tale file di identità autentica l'accesso a una macchina remota.


Non riuscivo a capire la tua risposta in modo completo, eseguibile ha bisogno di fare setuid a quale uid?
Saurabh

@Saurabh setuid per un utente impostato in modo specifico per consentire l'accesso remoto alla macchina in questione.
Kyle Jones

No, non è un'opzione, perché ho bisogno di fare ssh su macchina remota attraverso il mio programma solo attraverso l'id di quell'utente.
Saurabh

@Saurabh Che cosa fa il tuo ssh a quale utente viene eseguito, a patto che tu usi il nome utente giusto @ remotemachine?
Christian

0

Potresti scrivere codice SSH privato digitare la sorgente dei programmi (o utilizzare una catena di chiavi - più pulita, più facile da mantenere), quindi aggiungere l'associata pubblico chiave per il file authorized_keys degli host remoti.


0

Utilizzare l'autenticazione della chiave privata e disabilitare altri metodi di autenticazione sul server.

Inoltre, è possibile utilizzare la direttiva ForceCommand nel sshd_config del server per consentire solo l'esecuzione del comando specificato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.