📦

ネットワークの観察 - 第1回 SSHを解析する

に公開1

はじめに

SSHの接続はどのようになっているのでしょうか?今回はwiresharkを使用して確認してみます。
また、今回だけでなく次回以降も様々なネットワークの事象について観察していきたいと思います。

マシンスペック

MacBook Air M2 arm64
Docker上で実施

準備

wiresharkのインストール

brew install --cask wireshark

Dockerfile

FROM ubuntu:24.04

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
        openssh-server openssh-client \
        strace tcpdump vim less procps iproute2 \
    && mkdir -p /var/run/sshd \
    && useradd -m test && echo 'test:test' | chpasswd \
    && ssh-keygen -A \
    && echo 'PermitRootLogin no' >> /etc/ssh/sshd_config \
    && echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config

WORKDIR /work
CMD ["bash"]

docker‑compose.yml

version: "3.9"
services:
  ssh-server:
    build: .
    container_name: ssh-server
    hostname: ssh-server
    ports:
      - "2222:22"
    command: >
      bash -c "
        strace -ff -o /work/sshd_trace
               /usr/sbin/sshd -D -e
      "
    networks: [sshnet]

  ssh-client:
    build: .
    container_name: ssh-client
    hostname: ssh-client
    command: tail -f /dev/null   # 手動実行用
    networks: [sshnet]

  packet-capture:
    build: .
    container_name: packet-capture
    cap_add: [NET_ADMIN]
    command: tail -f /dev/null
    volumes:
      - ./pcap:/pcap
    networks: [sshnet]

networks:
  sshnet:
    driver: bridge

実験

パケットキャプチャ開始

docker exec -d ssh-server \
  tcpdump -i any -w /work/ssh_server.pcap port 22

クライアント側strace+SSH実行

docker exec -it ssh-client bash
# ↓コンテナ内
strace -ff -o /work/ssh_trace ssh test@ssh-server
# パスワード: test

キャプチャの停止

docker exec ssh-server pkill tcpdump

データのコピー

docker cp ssh-server:/work/ssh_server.pcap ./pcap/
open pcap/ssh_server.pcap    # Wireshark で開く

結果

1	0.000000	xx.xx.xx.2	xx.xx.xx.3	TCP	80	34736 → 22 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=3708330286 TSecr=0 WS=128
2	0.000045	xx.xx.xx.3	xx.xx.xx.2	TCP	80	22 → 34736 [SYN, ACK] Seq=0 Ack=1 Win=65160 Len=0 MSS=1460 SACK_PERM TSval=1279570470 TSecr=3708330286 WS=128
3	0.000089	xx.xx.xx.2	xx.xx.xx.3	TCP	72	34736 → 22 [ACK] Seq=1 Ack=1 Win=64256 Len=0 TSval=3708330286 TSecr=1279570470
4	0.000364	xx.xx.xx.2	xx.xx.xx.3	SSHv2	115	Client: Protocol (SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.13)
5	0.000374	xx.xx.xx.3	xx.xx.xx.2	TCP	72	22 → 34736 [ACK] Seq=1 Ack=44 Win=65152 Len=0 TSval=1279570470 TSecr=3708330286
6	0.011727	xx.xx.xx.3	xx.xx.xx.2	SSHv2	115	Server: Protocol (SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.13)
7	0.011806	xx.xx.xx.2	xx.xx.xx.3	TCP	72	34736 → 22 [ACK] Seq=44 Ack=44 Win=64256 Len=0 TSval=3708330298 TSecr=1279570481
8	0.012321	xx.xx.xx.2	xx.xx.xx.3	SSHv2	1608	Client: Key Exchange Init
9	0.012331	xx.xx.xx.3	xx.xx.xx.2	TCP	72	22 → 34736 [ACK] Seq=44 Ack=1580 Win=67200 Len=0 TSval=1279570482 TSecr=3708330298
10	0.013180	xx.xx.xx.3	xx.xx.xx.2	SSHv2	1192	Server: Key Exchange Init
11	0.045769	xx.xx.xx.2	xx.xx.xx.3	SSHv2	1280	Client: Diffie-Hellman Key Exchange Init
12	0.056453	xx.xx.xx.3	xx.xx.xx.2	SSHv2	1604	Server: Diffie-Hellman Key Exchange Reply, New Keys, Encrypted packet (len=284)
13	0.056466	xx.xx.xx.2	xx.xx.xx.3	TCP	72	34736 → 22 [ACK] Seq=2788 Ack=2696 Win=70144 Len=0 TSval=3708330342 TSecr=1279570526
14	0.076108	xx.xx.xx.2	xx.xx.xx.3	SSHv2	156	Client: New Keys, Encrypted packet (len=68)
15	0.121801	xx.xx.xx.3	xx.xx.xx.2	TCP	72	22 → 34736 [ACK] Seq=2696 Ack=2872 Win=70144 Len=0 TSval=1279570592 TSecr=3708330362
16	0.121830	xx.xx.xx.2	xx.xx.xx.3	SSHv2	116	Client: Encrypted packet (len=44)
17	0.121833	xx.xx.xx.3	xx.xx.xx.2	TCP	72	22 → 34736 [ACK] Seq=2696 Ack=2916 Win=70144 Len=0 TSval=1279570592 TSecr=3708330408
18	0.121854	xx.xx.xx.3	xx.xx.xx.2	SSHv2	116	Server: Encrypted packet (len=44)
19	0.121889	xx.xx.xx.2	xx.xx.xx.3	SSHv2	132	Client: Encrypted packet (len=60)
20	0.122477	xx.xx.xx.3	xx.xx.xx.2	SSHv2	336	Server: Encrypted packet (len=264)
21	0.167827	xx.xx.xx.2	xx.xx.xx.3	TCP	72	34736 → 22 [ACK] Seq=2976 Ack=3004 Win=72960 Len=0 TSval=3708330454 TSecr=1279570592
22	2.199489	xx.xx.xx.2	xx.xx.xx.3	SSHv2	156	Client: Encrypted packet (len=84)
23	2.239764	xx.xx.xx.3	xx.xx.xx.2	TCP	72	22 → 34736 [ACK] Seq=3004 Ack=3060 Win=70144 Len=0 TSval=1279572710 TSecr=3708332485
24	2.269558	xx.xx.xx.3	xx.xx.xx.2	SSHv2	100	Server: Encrypted packet (len=28)
25	2.269580	xx.xx.xx.2	xx.xx.xx.3	TCP	72	34736 → 22 [ACK] Seq=3060 Ack=3032 Win=72960 Len=0 TSval=3708332555 TSecr=1279572739
26	2.269735	xx.xx.xx.2	xx.xx.xx.3	SSHv2	184	Client: Encrypted packet (len=112)
27	2.269739	xx.xx.xx.3	xx.xx.xx.2	TCP	72	22 → 34736 [ACK] Seq=3032 Ack=3172 Win=70144 Len=0 TSval=1279572739 TSecr=3708332555
28	2.276300	xx.xx.xx.3	xx.xx.xx.2	SSHv2	700	Server: Encrypted packet (len=628)
29	2.318332	xx.xx.xx.2	xx.xx.xx.3	TCP	72	34736 → 22 [ACK] Seq=3172 Ack=3660 Win=75904 Len=0 TSval=3708332604 TSecr=1279572746
30	2.318336	xx.xx.xx.3	xx.xx.xx.2	SSHv2	116	Server: Encrypted packet (len=44)
31	2.318353	xx.xx.xx.2	xx.xx.xx.3	TCP	72	34736 → 22 [ACK] Seq=3172 Ack=3704 Win=75904 Len=0 TSval=3708332604 TSecr=1279572788
32	2.318436	xx.xx.xx.2	xx.xx.xx.3	SSHv2	448	Client: Encrypted packet (len=376)
33	2.319165	xx.xx.xx.3	xx.xx.xx.2	SSHv2	180	Server: Encrypted packet (len=108)
34	2.319340	xx.xx.xx.3	xx.xx.xx.2	SSHv2	572	Server: Encrypted packet (len=500)
35	2.319389	xx.xx.xx.2	xx.xx.xx.3	TCP	72	34736 → 22 [ACK] Seq=3548 Ack=4312 Win=78848 Len=0 TSval=3708332605 TSecr=1279572789
36	2.321605	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
37	2.361804	xx.xx.xx.2	xx.xx.xx.3	TCP	72	34736 → 22 [ACK] Seq=3548 Ack=4348 Win=78848 Len=0 TSval=3708332648 TSecr=1279572791
38	2.898938	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
39	2.899316	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
40	2.899385	xx.xx.xx.2	xx.xx.xx.3	TCP	72	34736 → 22 [ACK] Seq=3584 Ack=4384 Win=78848 Len=0 TSval=3708333185 TSecr=1279573369
41	2.923810	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
42	2.923991	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
43	2.943026	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
44	2.943186	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
45	2.966318	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
46	2.966500	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
47	2.989367	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
48	2.989508	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
49	3.010811	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
50	3.010931	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
51	3.034556	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
52	3.034679	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
53	3.058339	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
54	3.058451	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
55	3.078958	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
56	3.079060	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
57	3.098987	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
58	3.099120	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
59	3.117988	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
60	3.118226	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
61	3.141282	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
62	3.141354	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
63	3.163306	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
64	3.163416	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
65	3.186674	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
66	3.186861	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
67	3.208130	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
68	3.208243	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
69	3.231456	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
70	3.231573	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
71	3.253097	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
72	3.253207	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
73	3.276502	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
74	3.276614	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
75	3.300612	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
76	3.300723	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
77	3.323991	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
78	3.324099	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
79	3.346534	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
80	3.346645	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
81	3.369405	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
82	3.369509	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
83	3.392325	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
84	3.392421	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
85	3.414275	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
86	3.414430	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
87	3.437413	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
88	3.437522	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
89	3.460349	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
90	3.460467	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
91	3.484668	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
92	3.484812	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
93	3.508585	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
94	3.508692	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
95	3.529864	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
96	3.529973	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
97	3.553575	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
98	3.553687	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
99	3.575152	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
100	3.575257	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
101	3.597361	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
102	3.597465	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
103	3.621663	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
104	3.621820	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
105	3.644652	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
106	3.644793	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
107	3.668306	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
108	3.668417	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
109	3.692675	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
110	3.692823	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
111	3.717821	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
112	3.717926	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
113	3.739390	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
114	3.739699	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
115	3.763519	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
116	3.763632	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
117	3.786902	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
118	3.787190	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
119	3.806893	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
120	3.807030	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
121	3.828733	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
122	3.828841	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
123	3.849999	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
124	3.850140	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
125	3.874477	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
126	3.874601	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
127	3.897484	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
128	3.897622	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
129	3.919926	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
130	3.920072	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
131	3.944860	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
132	3.944989	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
133	3.970867	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
134	3.970975	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
135	3.993901	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
136	3.994008	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
137	4.017511	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
138	4.017614	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
139	4.038049	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
140	4.038189	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
141	4.060654	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
142	4.060831	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
143	4.085718	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
144	4.086035	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
145	4.110722	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
146	4.110842	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
147	4.134695	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
148	4.134850	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
149	4.158663	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
150	4.158868	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
151	4.178894	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
152	4.179045	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
153	4.201117	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
154	4.201271	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
155	4.221103	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
156	4.221427	xx.xx.xx.3	xx.xx.xx.2	SSHv2	108	Server: Encrypted packet (len=36)
157	4.221929	xx.xx.xx.3	xx.xx.xx.2	SSHv2	248	Server: Encrypted packet (len=176)
158	4.222103	xx.xx.xx.2	xx.xx.xx.3	TCP	72	34736 → 22 [ACK] Seq=5672 Ack=6648 Win=81664 Len=0 TSval=3708334508 TSecr=1279574691
159	4.222229	xx.xx.xx.2	xx.xx.xx.3	SSHv2	108	Client: Encrypted packet (len=36)
160	4.222257	xx.xx.xx.2	xx.xx.xx.3	SSHv2	132	Client: Encrypted packet (len=60)
161	4.222296	xx.xx.xx.2	xx.xx.xx.3	TCP	72	34736 → 22 [FIN, ACK] Seq=5768 Ack=6648 Win=81664 Len=0 TSval=3708334508 TSecr=1279574691
162	4.222499	xx.xx.xx.3	xx.xx.xx.2	TCP	72	22 → 34736 [ACK] Seq=6648 Ack=5769 Win=72960 Len=0 TSval=1279574692 TSecr=3708334508
163	4.225022	xx.xx.xx.3	xx.xx.xx.2	TCP	72	22 → 34736 [FIN, ACK] Seq=6648 Ack=5769 Win=72960 Len=0 TSval=1279574695 TSecr=3708334508
164	4.225071	xx.xx.xx.2	xx.xx.xx.3	TCP	72	34736 → 22 [ACK] Seq=5769 Ack=6649 Win=81664 Len=0 TSval=3708334511 TSecr=1279574695

まとめ

# 時刻 (相対) 主要イベント 説明
1‑3 0.0000s TCP 3‑way handshake SYN→SYN/ACK→ACK で xx.xx.xx.2 (client) ⇄ xx.xx.xx.3 (server) のコネクション確立。
4&6 0.0003s 0.0117s プロトコル・バージョン交換 SSH‑2.0‑OpenSSH_9.6p1 … が平文で往復。以降 SSH2。
8&10 0.012s Key Exchange Init (KEXINIT) アルゴリズム候補・圧縮方式などを双方送信。
11‑14 0.045‑0.076s Diffie‑Hellman鍵交換+New Keys 秘密共有を生成し、暗号化モードへ切替。直後のパケットから payload が暗号化 され長さだけ見える。
16‑20 0.12 s 前後 ユーザ認証フェーズ クライアント → サーバ:USERAUTH_REQUEST (ここでは password)。
サーバ → クライアント:USERAUTH_SUCCESS。両パケットとも暗号化済みで長さのみ確認可。
22‑34 2.19‑2.32s チャネル確立 & シェル起動 CHANNEL_OPEN, CHANNEL_REQUEST, CHANNEL_SUCCESS など。暗号化パケットが増えているのが見て取れる。
38‑149 2.89‑4.16s インタラクティブなシェル I/O 36byte 前後の暗号化パケットが高頻度で往復。これは端末エコー(プロンプト表示・キー入力)の典型的サイズ。
157‑164 4.22s セッション終了 クライアント→サーバ FIN, サーバ→クライアント FIN/ACK。TCP が正常にクローズ。

最後に

今回はsshの接続を深掘りしてみました、皆様の学習のお役に立てると幸いです。

Discussion

いわもと こういちいわもと こういち

データの暗号化が始まった後の部分が憶測になってしまっているのが残念に思います。
キャプチャーデータだけから判断するにしても、時刻やパケット数に注目すればもっとよかったのではないかと思います。

例えば、16~20をユーザー認証フェーズとしていますが、鍵交換が終了して暗号化が開始されてから0.05秒しか経っていません。この僅かな時間の間にパスワードのプロンプトを確認してパスワードを入力したと考えるのは無理がないでしょうか?
また、この後の22のパケットが送られるまで2秒程度の間があります。パスワードの入力はこの間に行われたと考える方が自然ではないでしょうか。

他には38~149をキー入力とそのエコーバックとしていますが、パケット数が100以上、送信だけに限っても50以上あります。そして送信間隔もほぼ20ミリ秒程度と均一になっています。50キー以上を均一な間隔で入力したのでしょうか? 実際にはもっと少なくはありませんか?
この部分に関しては日本語での情報も少ないので答えを書きますが、Keystroke Timing Obfuscationという機能が動いています。
https://posfie.com/@maya_shack/p/wFadlME

他の方法も併用するならば、sshコマンドに-vvvオプションをつけてどのようなパケットを送受信したかをしらべ、それとキャプチャーデータを見比べてみるのもいいでしょう。
16~20で実際には何を行っていたかも見えてくるかもしれません。