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 用时
标签云
alpine(1) api网关(1) async(1) await(1) centos(4) cli(1) client-go(1) debug(1) docker(10) docker-compose(1) dockerfile(1) embed(1) es6(1) etcd(1) etcdctl(1) freemesh(2) git(6) go(5) go-zeus(5) goland(2) golang(7) grafana(2) grpc(5) grpcurl(1) homebrew(1) homedir(1) http(2) hugo(1) java(2) javascript(3) job(1) js(1) json(1) k8s(16) k8s部署指南(1) kubebuilder(1) kubectl(4) kubernetes(1) linux(2) localecompare(1) lombok(1) metrics(2) mock(1) mysql(1) npm(1) nsenter(1) nvm(1) pnpm(2) pprof(1) prettier(1) prometheus(2) protobuf3(1) protoc(1) qiankun(1) request(1) scss(1) servicemesh(1) spring(1) springcloud->freemesh(1) ssh(2) systemctl(1) tcpdump(1) typescript(2) vite(2) vscode(2) vue(8) vue-admin(2) vue3(1) webssh(1) xtermjs(1) xxl-job(1) yarn(1) zookeeper(1) 云原生(4) 云原生框架(1) 介绍(1) 单体架构->freemesh(1) 单元化(1) 博客(1) 压缩(1) 可观测(1) 后台管理系统(1) 命名规范(1) 多云多活(1) 如水网(1) 安全(1) 安装(1) 容器(2) 开发联调神器(1) 微前端(1) 微服务(2) 微服务架构->freemesh(1) 微服务框架(1) 快速开始(1) 控制面(1) 数据面(1) 文集(2) 服务发现(1) 服务网格(1) 流量泳道(1) 流量管理(1) 监控告警(1) 端口映射(1) 证书(1) 负载均衡(1) 配置(1)