J'ai mis en place un tunnel via autossh.
Cela marche:
autossh -M 33201 -N -i myIdFile -R 33101:localhost:22 [email protected]
Je voudrais exécuter autossh en arrière-plan. Semble facile en utilisant l' -f
option.
Cela ne fonctionne cependant pas:
autossh -f -M 33201 -N -i myIdFile -R 33101:localhost:22 [email protected]
Autossh fonctionne correctement en arrière-plan, mais la connexion ssh semble échouer à chaque fois. Dans / var / syslog, je vois plusieurs occurrences de:
autossh[3420]: ssh exited with error status 255; restarting ssh
Qu'est-ce que je fais mal? Une supposition sauvage est que cela a quelque chose à voir avec l'authentification via le fichier de clé. Comment puis-je déboguer cela (l'ajout de -v aux options ssh ne semble pas se connecter n'importe où).
Edit: j'ai reçu quelques journaux ssh en utilisant l'option -y
/usr/bin/ssh[3484]: debug1: Next authentication method: publickey
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_rsa
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_dsa
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_ecdsa
/usr/bin/ssh[3484]: debug1: No more authentication methods to try.
/usr/bin/ssh[3484]: fatal: Permission denied (publickey).
autossh[3469]: ssh exited with error status 255; restarting ssh
Il semble donc qu'autossh n'accepte pas mon fichier identiy ( -i myIdFile
) lorsque vous utilisez l'option -f. Pourquoi donc?
(autossh 1.4c sur Raspian)
la source
Réponses:
Il semble que lorsque autossh tombe en arrière-plan (option -f), il change le répertoire de travail, ce qui signifie que les chemins relatifs ne fonctionnent plus. Ou plus spécifique: en entrant le chemin absolu de votre fichier d'identification, vous réussirez probablement.
J'ai recréé le scénario en créant une clé sans mot de passe à un emplacement non défini par défaut:
Je tape simplement deux fois sur Entrée pour générer une clé qui n'est pas protégée par un mot de passe.
J'ai copié la nouvelle clé sur mon serveur (qui permet actuellement l'authentification par mot de passe):
J'ai d'abord confirmé que la clé fonctionnait avec ssh normal, puis en utilisant autossh comme vous:
Ils fonctionnaient tous les deux très bien, alors j'ai recréé le problème que vous aviez:
Cela n'a pas fonctionné et ce qui suit a été écrit à
/var/log/syslog
:En changeant le chemin du fichier clé pour qu'il soit absolu, cela a fonctionné:
Aucune erreur
/var/log/syslog
.la source
Je ne sais pas ce qui se passe avec le -f mais vous pouvez aussi le faire:
la source
nohup
a également travaillé pour la courseautossh
sousrunit
Alpine LinuxAjoutez les paramètres suivants à SSH pour contourner "Êtes-vous sûr de vouloir continuer à vous connecter (oui / non)?"
La commande finale serait au format suivant:
la source
StrictHostKeyChecking=no
que si vous vous connectez à un jouet éphémère reconnu et que vous choisissez d'être paresseux.