2 votes

Autossh demande un mot de passe lorsqu'il est exécuté avec sudo (ou depuis upstart)

J'ai un emploi de débutant /etc/init/tunnel.conf :

description "SSH Tunnel"

start on (net-device-up IFACE=eth0)
stop on runlevel[016]

respawn

exec autossh -nNT -o ServerAliveInterval=15 -R 12345:localhost:22 myuser@myserver

Lorsque je regarde le /var/log/upstart/tunnel.log :

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-with-mic,password).

mais si j'essaie à partir du terminal

autossh -R 12345:localhost:22 myuser@myserver

Il se connecte à mon serveur sans me demander de mot de passe (j'ai copié les clés SSH).

Lorsque je l'exécute en utilisant sudo :

sudo autossh -R 12345:localhost:22 myuser@myserver

Il me demande le mot de passe de myserver, donc je suppose que c'est le problème que j'ai avec le job upstart. Pourquoi SSH me demande un mot de passe alors que je l'exécute en tant que root ?

10voto

masegaloeh Points 17760

Quand autossh invoqué par sudo ou le processus init, autossh utiliser le fichier identity/ssh-keys fourni par racine l'utilisateur (par exemple /root/.ssh/sshkeys ). Lorsque vous essayez d'exécuter autossh à partir du terminal, vous pouvez utiliser non racine l'utilisateur. Ainsi, autossh utiliser le fichier d'identité/de clés de sécurité fourni par cet utilisateur (par ex. /home/non-root/.ssh/sshkeys ).

Pour obtenir le comportement attendu, vous pouvez fournir le fichier d'identité dans le fichier tunnel.conf . Pour ce faire, modifiez la dernière ligne en

exec autossh -nNT -i /home/non-root/.ssh/sshkeys -o ServerAliveInterval=15 -R 12345:localhost:22 myuser@myserver

Plus d'informations Autossh avec Ubuntu Upstart

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X