Public Access
SSH.NET 2026.0.0 runs the SFTP handshake synchronously inside ConnectAsync, with an infinite operation timeout and without reading the cancellation token. A host whose login script prints anything (an echo in .bashrc) puts text where the first SFTP packet belongs; SSH.NET reads its first four bytes as a length of about a gigabyte and waits for the rest, so the file browser said "Connecting…" for ever. The SFTP client now uses the connect timeout as its operation timeout for the handshake and resets it to infinite once connected, so transfers on slow links are unchanged. A timeout after authentication becomes a TimeoutException naming the likely cause. The SSH test server gains a second port whose sessions print a banner before sftp-server, and SftpSessionTests proves the open fails within a 3 s connect timeout with that message. Without the fix the test runs into its 30 s guard. Button.paneicon is a fixed 26x26 but kept Fluent's 8,5,8,6 padding, which left a 10px-wide content box, so every 15-16px Material icon on the SFTP panes was drawn with its sides cut off. Its padding is now 0. Rename on the host pane used U+E9AD, an italic T (text formatting); it now uses U+E9A2, the rename glyph the phone's files screen already uses. The host pane's "Up one directory" drew the design's arrow_downward; both panes now use arrow_upward. SSH tests 123/123, layout tests 203/203, app tests 744/749 with the 5 Linux TPM skips.