The tsshd works like mosh-server, while the tssh --udp works like mosh.
-
Port Forwarding ( same as openssh, includes ssh agent forwarding and X11 forwarding )
-
[TODO] Connection Migration ( supports network switching and reconnection, depends on quic-go#234 )
-
Install tssh on the client ( the user's machine ).
-
Install tsshd on the server ( the remote host ).
-
Use
tssh --udpto login to the server. Configure as follows to omit--udp:Host xxx #!! UdpMode yes #!! TsshdPath ~/go/bin/tsshd
-
The
tsshplays the role ofsshon the client side, and thetsshdplays the role ofsshdon the server side. -
The
tsshwill first login to the server normally as an ssh client, and then run a newtsshdprocess on the server. -
The
tsshdprocess listens on a random udp port between 61000 and 62000, and sends its port number and a secret key back to thetsshprocess over the ssh channel. The ssh connection is then shut down, and thetsshprocess communicates with thetsshdprocess over udp. -
The
tsshdsupportsQUICprotocol andKCPprotocol (the default isQUIC), which can be specified on the command line (such as-oUdpMode=KCP), or configured as follows:Host xxx #!! UdpMode KCP
-
Install with apt on Ubuntu
sudo apt install tsshdsudo apt update && sudo apt install software-properties-common sudo add-apt-repository ppa:trzsz/ppa && sudo apt update sudo apt install tsshd
-
Install with apt on Debian
sudo apt install tsshdsudo apt install curl gpg curl -s 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x7074ce75da7cc691c1ae1a7c7e51d1ad956055ca' \ | gpg --dearmor -o /usr/share/keyrings/trzsz.gpg echo 'deb [signed-by=/usr/share/keyrings/trzsz.gpg] https://ppa.launchpadcontent.net/trzsz/ppa/ubuntu jammy main' \ | sudo tee /etc/apt/sources.list.d/trzsz.list sudo apt update sudo apt install tsshd
-
Install with yum on Linux
sudo yum install tsshd-
Install with gemfury repository.
echo '[trzsz] name=Trzsz Repo baseurl=https://yum.fury.io/trzsz/ enabled=1 gpgcheck=0' | sudo tee /etc/yum.repos.d/trzsz.repo sudo yum install tsshd
-
Install with wlnmp repository. It's not necessary to configure the epel repository for tsshd.
curl -fsSL "https://sh.wlnmp.com/wlnmp.sh" | bash sudo yum install tsshd
-
-
Install with yay on ArchLinux
yay -S tsshdyay -Syu yay -S tsshd
-
Install with Go ( Requires go 1.21 or later )
go install github.com/trzsz/tsshd/cmd/tsshd@latestgo install github.com/trzsz/tsshd/cmd/tsshd@latest
The binaries are usually located in ~/go/bin/ ( C:\Users\your_name\go\bin\ on Windows ).
-
Build from source ( Requires go 1.21 or later )
sudo make installgit clone --depth 1 https://github.com/trzsz/tsshd.git cd tsshd make sudo make install -
Download from the GitHub Releases, unzip and add to
PATHenvironment.
Feel free to email the author [email protected], or create an issue. Welcome to join the QQ group: 318578930.
❤️ Sponsor trzsz ❤️, buy the author a drink 🍺 ? Thank you for your support!