ユーザ用ツール

サイト用ツール


ubuntu:noble

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ubuntu:noble [2024/05/03 16:10] nullponubuntu:noble [2024/08/25 13:20] (現在) nullpon
行 4: 行 4:
 ## sshのportを変更する ## sshのportを変更する
  
-`/etc/ssh/sshd_config` のPortを修正しても反映されない+Ubuntu 24.04では`/etc/ssh/sshd_config`のPortを修正してsshを再起動しても反映されない。ssh.serviceではなくssh.socketを再起動する
  
-`/etc/systemd/system/ssh.service.requires/ssh.socket` を修正する+``` 
 +sudo systemctl daemon-reload 
 +sudo systemctl ssh.socket  
 +```
  
-```ini +## socket activation
-[Unit] +
-Description=OpenBSD Secure Shell server socket +
-Before=sockets.target ssh.service +
-ConditionPathExists=!/etc/ssh/sshd_not_to_be_run+
  
-[Socket] +Ubuntu 24.04はsocket activationという仕組みを採用しており、各サーバプロセスの代わりにsystemdがポートを開いて待ち受け、接続があれば各サービスに接続を引き継ぐという流れになっている。
-ListenStream=22 +
-Accept=no +
-FreeBind=yes+
  
-[Install] +この待ち受けと引き継ぎを管理しているのがsocketユニットで、sshならばssh.socketが管理している。
-WantedBy=sockets.target +
-RequiredBy=ssh.service +
-```+
  
-ListenStreamの値任意変更して+sshd_config修正してssh.socketを再起動すると、`/etc/systemd/generator/ssh.socket.d/addresses.conf`が自動的に作成される。こファイルsystemdが待ち受けするポートが指定されている。 
 + 
 +socket activationでは接続の引き渡し先サービスが停止していた場合、systemdは対象のサービスを立ち上げてから接続を引き渡す。このためサービスはOS起動時の自動起動をオンにする必要もない。
  
 ``` ```
-sudo systemctl daemon-reload +systemctl list-unit-files | grep ssh 
-sudo systemctl restart ssh.service+ssh.service                                                                   disabled        enabled 
 +ssh.socket                                                                    enabled         enabled
 ``` ```
  
-地味サービス名がsshdからsshに変更になっているので注意 +このようにssh.serviceのstateはdisabledされている。代わりにssh.socketがenabledになる。
- +
-## socket activation +
- +
-sshのこの妙な変更はsocket activationという仕組みよる。socket activationはサービスではくsystemdが指定のportをlistenし接続を待ち受け、portに接続があと対象のサービスにディスパッチするという仕組みらしい。この時もし対象のサービスが停止していればsystemdは対象のサービスを立ち上げてから接続を引き渡す+
  
 </markdown> </markdown>
ubuntu/noble.1714752643.txt.gz · 最終更新: 2024/05/03 16:10 by nullpon