Complete sshd

This commit is contained in:
2025-04-18 16:39:24 +02:00
parent ec90fb7680
commit d5b4ca5440
7 changed files with 513 additions and 0 deletions

View File

@ -0,0 +1,46 @@
"""CLI app."""
import logging
import asyncio
import sys
from pydantic_settings import CliApp
from .settings import ServerSettings
from .ssh_server import start_server
LOG = logging.getLogger()
handler = logging.StreamHandler()
formatter = logging.Formatter("%(created)f:%(levelname)s:%(name)s:%(module)s:%(message)s")
handler.setFormatter(formatter)
LOG.addHandler(handler)
LOG.setLevel(logging.INFO)
def cli(args: list[str] | None = None) -> None:
"""Run CLI app."""
try:
settings = ServerSettings()
except Exception:
print("One or more settings could not be resolved.")
CliApp.run(ServerSettings, ["--help"])
sys.exit(1)
if settings.debug:
LOG.setLevel(logging.DEBUG)
loop = asyncio.new_event_loop()
loop.run_until_complete(start_server(settings))
print(f"Starting SSH server: {settings.listen_address}:{settings.port}")
try:
loop.run_forever()
except KeyboardInterrupt:
print("\nCtrl-C received. Exiting.")
sys.exit()
if __name__ == "__main__":
"""Run CLI app."""
cli()