golang SSH客户端三件套:远程登录、端口映射、文件传输

golang SSH 客户端三件套

项目地址:https://github.com/go-example/ssh

ssh 三件套

  • 远程登录
  • 端口映射
  • 文件传输

准备一台远程主机

可以使用 alpinessh 快速创建一个 ssh 主机,项目地址:https://github.com/basicimage/alpinessh

1docker run -d -p 222:22 --rm bimg/alpinessh
2# 默认账号密码 root:123456

远程登录

1go run terminal.go

可以看到,直接进入主机命令界面,为了方便后面的操作,我们在主机内装一个 nginx

1apk add nginx
2nginx #启动nginx

端口映射

1go run forward.go

注意要在本项目目录新启动一个命令行界面,不要在上面远程命令行界面操作

1curl http://localhost:8800

返回页面为 404,说明端口映射成功

文件传输

1go run sftp.go

default.conf(nginx 配置)和index.html上传上去,再远程命令行重启nginx

1nginx -s reload
2curl http://localhost:8800

可以看到,返回我们自定义的页面了。

ps:

定义成/tmp目录主要是权限问题

这里也会把远程的/bin/bash文件下载下来。

发布日期:2023-04-27 22:06 字数:60 用时 1分钟