在启动时自动启动SSH

完全擅长linux和Ubnuntu。 设置机器进行深度学习/神经网络。 到目前为止它进展顺利。 安装并运行一切。 我希望能够从我的Mac笔记本电脑ssh使用该系统。 我安装了openssh并开始工作。

但是,当我重新启动计算机时,ssh服务器不会重新启动。 我检查sudo service ssh status ,它报告和错误。 我可以启动它,一切正常。

我的第一个想法是我需要告诉它重新启动,我发现这个线程说它应该默认启动,我不需要添加chrontab或类似的东西。 所以我不认为就是这样。

然后我发现这个线程建议使用命令sudo update-rc.d ssh defaults ,但那个线程已经很老了,似乎答案可能还不对,那时候呢?

所以我发现这个线程建议在sshd_config文件中注释掉ListenAddress行。 基本上它表示如果使用ListenAddress,它可能会在DCHP分配之前尝试获取IP,因此启动失败。 这是有道理的。 但我需要该参数来使我的端口转发在我的家庭网络上工作。

ListenAddress条目下的这个文档说明了这一点

 The default is to listen on all local addresses. 

那么也许我不需要它来进行端口转发工作?

我按照前面的线程查看了这个也很老的bug报告 ,但建议每次netmanager获取新IP时使用网络管理器重启ssh。

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

这比noobie在这一点上可以评估的要多得多。 这样安全吗? 那是这样做的吗? 在过去的7年里还有其他的东西吗?

任何建议都会很棒。 谢谢。

你尝试过简单的设置吗?

 sudo systemctl enable ssh 

这就是我在启动时运行ssh的方法。

****我将在答案的上述部分离开,以防其他人遇到此帖****

从上面引用我的评论:

你如何设置端口转发设置? 我根本不使用ListenAddress,在我的家庭服务器上工作正常。 我的路由器转发我指定的端口上的任何内容(22,如果你想要标准端口,但你可以使用任何东西,只要它不会与国际网络上的其他服务冲突)到我想要的计算机。 例如,端口12345上的任何内容都会转发到我的CentOS服务器上的端口22。 12346中出现的任何内容都会转发到我无头的RasPi的端口22。 在12347上发生的任何事情都会在我的RasPi上输入到6697的IRC保镖

ListenAddress与端口转发无关,ListenAdress可用于通过一个或多个NIC配置多个IP地址的服务器。 从这里引用(整个页面是一个很好的解释): https : //www.cyberciti.biz/tips/howto-openssh-sshd-listen-multiple-ip-address.html

假设您有8个公共IP地址和1个私有IP地址。 您>想要将sshd绑定到一个选定的公共IP(ex 70.5.xx.xx)和private> IP(10.1.5.1)。

幸运的是,使用ListenAddress选项可以轻松实现此目的。 它>指定sshd应该监听的本地地址。 如果>配置文件>跳过此指令,则sshd将绑定或列出所有可用的IP>地址。

这是允许你的多个IP中的一些接受ssh连接。 我猜你将ListenAddress设置为公共IP或路由器的内部IP – 我猜你是否将它设置为服务器的本地IP它可以正常工作。 无论如何,现在你知道ListenAddress是如何工作的,如果你必须配置一个更复杂的服务器,你就会准备好。 很高兴听到你让事情有效。