Home

Awesome

trzsz-ssh ( tssh ) - an openssh client alternative

MIT License GitHub Release WebSite 中文文档

trzsz-ssh ( tssh ) is an ssh client designed as a drop-in replacement for the openssh client. It aims to provide complete compatibility with openssh, mirroring all its features, while also offering additional useful features not found in the openssh client.

Basic Features

trzsz-ssh ( tssh ) works exactly like the openssh client. The following common features have been implemented:

FeaturesSupport Options
Cipher-c Ciphers
Pseudo TTY-t -T RequestTTY
Network-4 -6 AddressFamily
SSH Proxy-J -W ProxyJump ProxyCommand
MultiplexingControlMaster ControlPath ControlPersist
CommandRemoteCommand, LocalCommand, PermitLocalCommand
SSH Agent-a -A ForwardAgent IdentityAgent SSH_AUTH_SOCK
X11 Forward-x -X -Y ForwardX11 ForwardX11Trusted ForwardX11Timeout
Known HostsUserKnownHostsFile GlobalKnownHostsFile StrictHostKeyChecking
Basic Login-l -p -i -F HostName Port User IdentityFile SendEnv SetEnv
AuthenticationPubkeyAuthentication PasswordAuthentication KbdInteractiveAuthentication
Port Forward-g -f -N -L -R -D LocalForward RemoteForward DynamicForward GatewayPorts ClearAllForwardings

Extra Features

trzsz-ssh ( tssh ) offers additional useful features:

English中文
Login Prompt登录界面
Custom Theme主题风格
trzsz ( trz / tsz )trzsz ( trz / tsz )
zmodem ( rz / sz )zmodem ( rz / sz )
Batch Login批量登录
Group Labels分组标签
Automated Interaction自动交互
Remember Password记住密码
Custom Configuration个性配置
Comments of Config配置注释
Clipboard Integration剪贴板集成
Other Features其他功能
UDP ModeUDP 模式

Installation

Development

The github.com/trzsz/trzsz-ssh/tssh can be used as a library, for example:

package main

import (
	"log"
	"os"

	"github.com/trzsz/trzsz-ssh/tssh"
)

func main() {
	// Example 1: execute command on remote server
	client, err := tssh.SshLogin(&tssh.SshArgs{Destination: "root@192.168.0.1"})
	if err != nil {
		log.Fatal(err)
	}
	defer client.Close()
	session, err := client.NewSession()
	if err != nil {
		log.Fatal(err)
	}
	defer session.Close()
	output, err := session.CombinedOutput("whoami")
	if err != nil {
		log.Fatal(err)
	}
	log.Printf("I'm %s", string(output))

	// Example 2: run the tssh program
	code := tssh.TsshMain([]string{"-t", "root@192.168.0.1", "bash -l"})
	os.Exit(code)
}

Contributing

Welcome and thank you for considering contributing. We appreciate all forms of support, from coding and testing to documentation and CI/CD improvements.

Screenshot

tssh tiny

tssh simple

tssh table

tssh trzsz

tssh batch

Contact

Feel free to email the author lonnywong@qq.com, or create an issue. Welcome to join the QQ group: 318578930.

Sponsor

❤️ Sponsor trzsz ❤️, buy the author a drink 🍺 ? Thank you for your support!