sshpass ssh直接登录服务器是可以的。
但是改成ssh端口转发就不行了。
我的命令如下
sshpass -p 密码 ssh -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -N -f -R 13306:192.168.0.30:3306 ubuntu@ip
我打印了日志
debug3: send packet: type 80
debug3: receive packet: type 4
debug1: Remote: Forwarding listen address "localhost" overridden by server GatewayPorts
debug3: receive packet: type 81
debug1: remote forward success for: listen 13306, connect 192.168.0.30:3306
debug1: forwarding_success: all expected forwarding replies received
debug1: forking to background
~ # debug3: send packet: type 1
Killed by signal 1.
要使用
sshpass
和ssh
来实现端口转发,你可以使用以下命令语法:以下是命令参数的解释:
sshpass
:这是一个工具,用于提供密码给ssh
,以便自动登录而不需要手动输入密码。-p '密码'
:用于指定密码,你需要将'密码'
替换为你实际的密码。ssh
:用于建立 SSH 连接。-L
:表示本地端口转发。本地端口
:是你要绑定的本地端口号,可以是你选择的任何未被占用的端口号。目标主机
:是你想要连接到的远程主机的主机名或IP地址。目标端口
:是远程主机上你想要访问的服务的端口号。用户名
:是你在远程主机上的用户名,用于登录。通过执行上述命令,你将在本地主机上创建一个监听指定本地端口的 SSH 通道,所有传入该端口的流量都将被转发到目标主机的指定端口上。这通常用于建立安全的隧道,以便在本地主机和远程主机之间传输数据或访问远程服务。请确保你已经安装了
sshpass
工具,或者可以使用其他方式实现无密码登录(如SSH密钥对)来提高安全性。