sshpass和ssh实现端口转发时命令怎么写?

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.
阅读 1.1k
1 个回答

要使用 sshpassssh 来实现端口转发,你可以使用以下命令语法:

sshpass -p '密码' ssh -L 本地端口:目标主机:目标端口 用户名@目标主机

以下是命令参数的解释:

  • sshpass:这是一个工具,用于提供密码给 ssh,以便自动登录而不需要手动输入密码。
  • -p '密码':用于指定密码,你需要将 '密码' 替换为你实际的密码。
  • ssh:用于建立 SSH 连接。
  • -L:表示本地端口转发。
  • 本地端口:是你要绑定的本地端口号,可以是你选择的任何未被占用的端口号。
  • 目标主机:是你想要连接到的远程主机的主机名或IP地址。
  • 目标端口:是远程主机上你想要访问的服务的端口号。
  • 用户名:是你在远程主机上的用户名,用于登录。

通过执行上述命令,你将在本地主机上创建一个监听指定本地端口的 SSH 通道,所有传入该端口的流量都将被转发到目标主机的指定端口上。这通常用于建立安全的隧道,以便在本地主机和远程主机之间传输数据或访问远程服务。请确保你已经安装了 sshpass 工具,或者可以使用其他方式实现无密码登录(如SSH密钥对)来提高安全性。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题