web-dev-qa-db-ja.com

ブート時にSSHを自動的に開始します

LinuxおよびUbnuntuがまったく新しい。ディープラーニング/ニューラルネットワークを実行するためのマシンのセットアップ。これまでのところ順調です。すべてがインストールされ実行されています。 Macラップトップからsshを使用してシステムを使用できるようにしたい。私はopensshをインストールし、それを動作させました。

ただし、マシンを再起動しても、sshサーバーは再起動しません。 Sudo service ssh statusで確認すると、エラーが報告されます。その後、開始することができ、すべてが正常に機能します。

私が最初に考えたのは、再起動時に起動するように指示する必要があることでした。そして、 このスレッド が見つかりました。これはデフォルトで起動する必要があり、chrontabなどを追加する必要はありませんだからそれだとは思わない。

それから このスレッド コマンドSudo update-rc.d ssh defaultsの使用を提案しますが、そのスレッドはかなり古く、その答えは当時も正しくなかったようです。

そこで、sshd_configファイルのListenAddress行をコメントアウトすることを提案する このスレッド を見つけました。基本的に、ListenAddressを使用すると、DCHPによってIPが割り当てられる前にIPを取得しようとするため、起動に失敗することがあります。理にかなっています。しかし、ホームネットワーク上でポートフォワーディングを機能させるには、このパラメーターが必要です。

このドキュメントListenAddressのエントリの下

The default is to listen on all local addresses.

それで、ポートフォワーディングを機能させるために必要ないのでしょうか?

以前のスレッドをたどって このバグレポート もかなり古くなっていますが、netmanagerが新しいIPを取得するたびにネットワークマネージャーを使用してsshを再起動することをお勧めします。

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

これは、このnoobieがこの時点で評価できる以上のことです。それは安全ですか?それがこれを行う方法ですか?過去7年間に他に何か解決されましたか?

どんなアドバイスも素晴らしいでしょう。ありがとう。

12
Rothrock

単純に設定してみましたか

Sudo systemctl enable ssh

これが、起動時に実行するようにsshを設定する方法です。

****この投稿に出くわした他の人に役立つ場合に備えて、回答の上記の部分を残しています****

上から私のコメントを引用:

ポート転送の設定はどのようにしていますか? ListenAddressをまったく使用せず、ホームサーバーで問題なく動作します。ルーターは、指定したポート(標準ポートが必要な場合は22ですが、国際ネットワーク上の他のサービスと競合しない限り、任意のものを使用できます)に着信するものを必要なコンピューターに転送します。たとえば、ポート12345で受信したものはすべて、CentOSサーバーのポート22に転送されます。 12346に入ってくるものはすべて、私の頭のないRasPiのポート22に転送されます。 12347に入ってくるものはすべて、RasPiのIRCバウンサーのポート6697に送られます

ListenAddressはポート転送とは関係ありません。ListenAdressは、1つ以上のNICで複数のIPアドレスを使用して構成されたサーバーに使用できます。ここから引用(ページ全体が良い説明です): https://www.cyberciti.biz/tips/howto-openssh-sshd-listen-multiple-ip-address.html

合計8つのパブリックIPアドレスと1つのプライベートIPアドレスがあるとします。 sshdを1つの選択されたパブリックIP(ex 70.5.xx.xx)とプライベート> IP(10.1.5.1)のみにバインドします。

幸いなことに、ListenAddressオプションを使用してこれを実現する簡単な方法があります。 > sshdがリッスンするローカルアドレスを指定します。このディレクティブが構成ファイルからスキップされた場合、sshdは使用可能なすべてのIPアドレスをバインドまたはリストします。

複数のIPの1つがssh接続を受け入れることができるようにするためです。 ListenAddressをパブリックIPまたはルーターの内部IPのいずれかに設定していると推測します。サーバーのローカルIPに設定するとうまくいくと思います。とにかく、ListenAddressの仕組みがわかったので、より複雑なサーバーを構成する必要がある場合は準備ができています。うまくいったことを聞いてうれしいです。

40
RobertRSeattle

提案された解決策がうまくいかなかったため、ブート時にSSHを開始するには追加のコマンドが必要であることが最終的にわかりました。

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

一部の人は、このコマンドに言及しました:

Sudo systemctl enable ssh.service

このコマンドの代わりに実行する必要があります。

Sudo systemctl enable ssh
1
adambg