web-dev-qa-db-fra.com

Démarrer SSH automatiquement au démarrage

Complètement nouveau pour Linux et Ubnuntu. Mise en place d'une machine pour l'apprentissage en profondeur/réseaux de neurones. Jusqu'ici ça va bien. J'ai tout installé et en cours d'exécution. Je veux pouvoir utiliser ssh depuis mon ordinateur portable Mac pour utiliser le système. J'ai installé openssh et je l'ai fait fonctionner.

Cependant, lorsque je redémarre la machine, le serveur ssh ne redémarre pas. Je vérifie avec Sudo service ssh status et il rapporte et erreur. Je peux alors le démarrer et tout fonctionne bien.

Ma première pensée était que je devais lui dire de démarrer au redémarrage, et j'ai trouvé ce fil qui dit qu'il devrait commencer par défaut et que je n'ai pas besoin d'ajouter un chrontab ou quoi que ce soit du genre. Donc, je ne pense pas que ce soit ça.

Puis j'ai trouvé ce fil qui suggère d'utiliser la commande Sudo update-rc.d ssh defaults, mais ce fil est assez ancien et il semble que cette réponse n'était peut-être pas exacte même à l'époque?

Alors, j'ai trouvé ce fil qui suggère de commenter la ligne ListenAddress dans le fichier sshd_config . Fondamentalement, il indique que si ListenAddress est utilisée, elle peut essayer d'obtenir l'adresse IP avant qu'elle ne soit affectée par le DCHP. Le démarrage échoue donc. Ce qui a du sens. Mais j'ai besoin de ce paramètre pour que la redirection de port fonctionne sur mon réseau domestique.

Cette documentation sous l'entrée pour ListenAddress indique que

The default is to listen on all local addresses.

Alors peut-être que je n'en ai pas besoin pour faire fonctionner la redirection de port?

J'ai suivi le fil précédent pour ce rapport de bogue qui est également assez ancien, mais suggère d'utiliser le gestionnaire de réseau pour redémarrer ssh à chaque fois que netmanager obtient une nouvelle adresse IP.

echo /etc/init.d/ssh restart > /etc/NetworkManager/dispatcher.d/10ssh
chmod 755 /etc/NetworkManager/dispatcher.d/10ssh

C'est beaucoup plus que ce que noobie peut évaluer à ce stade. Est-ce sécuritaire? Est-ce la façon de faire ça? Quelque chose a-t-il été mis au point au cours des 7 dernières années?

Tout conseil serait bon. Merci.

10
Rothrock

Avez-vous essayé simplement de régler

Sudo systemctl enable ssh

?

C’est comme ça que j’ai mon jeu ssh à exécuter au démarrage.

**** Je pars dans la partie ci-dessus de la réponse au cas où cela serait utile pour les autres personnes qui rencontrent cet article ****

Citant mon commentaire ci-dessus:

Comment avez-vous votre configuration de redirection de port? Je n'utilise pas du tout ListenAddress et tout se passe bien sur mon serveur domestique. Mon routeur transfère tout ce qui entre sur un port que je spécifie (22 si vous voulez le port standard, mais vous pouvez utiliser n'importe quoi tant que cela n'entre pas en conflit avec d'autres services de votre réseau international) vers l'ordinateur de mon choix. Par exemple, tout ce qui entre sur le port 12345 est transféré sur le port 22 de mon serveur CentOS. Tout ce qui entre sur 12346 est transmis au port 22 de mon RasPi sans tête. Tout ce qui entre sur 12347 va au port 6697 pour le videur IRC sur mon RasPi

ListenAddress n'a rien à voir avec le transfert de port. ListenAdress peut être utilisé pour un serveur configuré avec plusieurs adresses IP sur une ou plusieurs cartes réseau. Citant à partir d'ici (la page entière est une bonne explication): https://www.cyberciti.biz/tips/howto-openssh-sshd-listen-multiple-ip-address.html

Disons que vous avez au total 8 adresses IP publiques et une adresse IP privée. Vous souhaitez lier sshd à une adresse IP publique sélectionnée (ex. 70.5.xx.xx) et privée> à une adresse IP (10.1.5.1) uniquement.

Heureusement, il existe un moyen facile d'y parvenir en utilisant l'option ListenAddress. Il> spécifie les adresses locales sur lesquelles sshd doit écouter. Si cette directive est> ignorée du fichier de configuration, sshd sera lié ou répertoriera toutes les adresses IP> disponibles.

C'est pour permettre à une partie de vos IP multiples d'accepter les connexions SSH. J'imagine que vous définissez ListenAddress sur votre adresse IP publique ou sur l'adresse IP interne de votre routeur. J'imagine que si vous définissez cette adresse sur l'adresse IP locale de votre serveur, cela aurait très bien fonctionné. Quoi qu'il en soit, vous savez maintenant comment ListenAddress fonctionne et vous serez prêt si vous devez configurer un serveur plus complexe. Content de t'entendre faire fonctionner les choses.

36
RobertRSeattle

Comme la solution suggérée ne fonctionnait pas pour moi, j'ai finalement constaté qu'une commande supplémentaire était nécessaire pour démarrer SSH au démarrage:

Sudo update-rc.d ssh defaults
Sudo systemctl enable ssh.socket

Certains ont mentionné que cette commande:

Sudo systemctl enable ssh.service

devrait être exécuté à la place de cette commande:

Sudo systemctl enable ssh
0
adambg