GNU/Linux >> Linux の 問題 >  >> Ubuntu

Sshは再起動時にデフォルトポートにリセットしますか?

ホームサーバーのデフォルトのSSHポートを変更しました(/etc/ssh/sshd_config内) ファイル)ポート54747に接続し、sshを再起動しました およびsshd サービス(どちらかわからないので、安全のために両方を実行しました)。構成をテストするために、ログアウトしてから問題なく再度ログインしました。

数日後、aptアップデートをインストールしてから、サーバーを再起動しました。 (ポート54747で)SSHで接続しようとすると、接続拒否エラーが発生しました。

何らかの理由で、デフォルトのポートでSSHを実行しようとしましたが、機能しました。 sshd_configを確認するために戻りましたが、それでもカスタムポートがありました。そこで、sshを再起動しました およびsshd サービスを提供し、「通常の」動作に戻りました(ポート54747のssh)。再起動を再試行しましたが、接続が再度拒否されました…

誰かが私が間違ったことを知っていますか?

追加の詳細:

  • Ubuntu 16.04.2 LTS
  • サーバーはHTPCでも使用されており、テレビでセッションが開いています(SSHと同じユーザー)
  • ラップトップのRSAキーを使用してSSHで接続し、パスワード認証を無効にしました
  • 以前はsudo reboot -h nowで再起動していました 、しかし検索したところ、一部の人に落胆していることがわかったので、sudo rebootを試してみました 、ただし違いはありません

編集
一連のイベント:

  1. /etc/ssh/sshd_configでSSHポートを22から54747に変更します
  2. sshおよびsshdサービスを再起動します
  3. 現在のSSHセッションを終了する
  4. ポート54747でSSHに正常に戻る
  5. 再起動
  6. ポート54747ではSSH接続エラーが発生しましたが、ポート22では成功しました
  7. sshおよびsshdサービスを再起動します
  8. SSHはポート54747で正常に戻り、ポート22で接続エラーが発生しました
  9. 再起動して6に戻ります

編集1: netstat 出力

[email protected]:~$ sudo netstat -lntp | grep :54747
[email protected]:~$ sudo netstat -lntp | grep :22
tcp6       0      0 :::22                   :::*                    LISTEN      1/init  

編集2: service sshd status

● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: inactive (dead)

編集3: lsof -i | grep ssh

systemd      1     root   46u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
systemd      1     root   49u  IPv6  14641      0t0  TCP *:ssh (LISTEN)
sshd      4088     root    3u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd      4088     root    4u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd      4202      rgo    3u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd      4202      rgo    4u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)

参考までに、ATLASはリモートサーバーのホスト名、192.168.1.27はラップトップのLAN IP、コマンドは手順6と7の間に実行されました

ufw status

Status: inactive

編集4: ps -ef |grep sshd

root      4088     1  0 22:40 ?        00:00:00 sshd: rgo [priv]
rgo       4202  4088  0 22:40 ?        00:00:00 sshd: [email protected]/1 sshd

承認された回答:

sshは、構成によってはsystemdによって「ソケットアクティブ化」される場合があります。つまり、最初はリスニングポートを設定するのはsystemdであり、sshdはクライアントが最初に接続したときにのみ開始されます。これは起動時間を短縮するためです。サービスデーモンはオンデマンドでのみ起動されます。

関連:Ubuntuで画面を記録する方法は?

ただし、これは、一致するポートに対してsystemdも構成する必要があることを意味します。システム構成は/lib/systemd/system/ssh.socketにあります。 ListenStream=22を一覧表示します 。これを上書きするには、ファイル/etc/systemd/system/ssh.socket.d/port.confを作成します (ディレクトリssh.socket.dを作成します 必要に応じて)次のものが含まれます:

[Socket]
ListenStream=
ListenStream=54747

番号を目的のポートに変更します。最初の空白のエントリは前のデフォルトを消去し、次のエントリは新しいデフォルトを追加します。これは、/lib/systemd/system/ssh.socketで出荷されたデフォルトを上書きします に加えて実行する必要があります /etc/ssh/sshd_configを変更する 。

次に、sudo systemctl daemon-reloadを実行します systemdに変更を通知し、sudo systemctl reload ssh sshデーモンが以前に実行されていた場合。


Ubuntu
  1. UbuntuLinuxでのKippoSSHハニーポットのデプロイ

  2. LinuxでSSHポートを変更する方法

  3. Linux サーバーのデフォルトの SSH ポートを変更する必要がありますか?

  1. SSHトンネリングを設定する方法

  2. Lubuntu20.04LinuxでSSHポートを変更する方法

  3. CentOSでSSHポートを変更する方法

  1. 再起動時にSSHトンネルを接続しますか?

  2. CWPのSSHポートを変更する

  3. デフォルトのSSHサーバーのポート番号を変更する