在 ngrok 的官网注册一个账户

查看 Authtoken
https://dashboard.ngrok.com/auth/your-authtoken
如下图所示,复制下来,等会要用.

在 GitHub 创建一个 Repo
打开你的github,新创建一个仓库.只需要填上仓库名字,别的不用管,点击下面的Creat repository

给 Repo 添加 Secrects
NGROK_TOKEN : 1gtVf----------------------yVqbyAXX9
SSH_PASSWORD :ThisIsMySshServerPassword

点击Secrets,然后点击右侧New Secret

然后添加的secret就是前面代码里的,照着图例填写后,点击Add secret就行.
然后添加另外一个secret 他的Name就是SSH_PASSWORD,密码你自己设定,这恶鬼密码就是你用ssh连接服务器时候所要用到的密码.

添加文件 ssh-server.sh 到 Repo
然后我们来添加sh脚本,先点击code,然后点击creating a new file

文件名字就写ssh-server.sh,内容就是下面代码框的这些,全部复制然后粘贴过去就行
最后页面拉到最下面,点击Commit new file.

#!/bin/bash
if [[ -z "$NGROK_TOKEN" ]]; then
echo "Please set 'NGROK_TOKEN'"
exit 2
fi
if [[ -z "$SSH_PASSWORD" ]]; then
echo "Please set 'SSH_PASSWORD' for user: $USER"
exit 3
fi
wget -q https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-386.zip
unzip ngrok-stable-linux-386.zip
chmod +x ./ngrok
echo -e "$SSH_PASSWORD\n$SSH_PASSWORD" | sudo passwd "$USER"
rm -f .ngrok.log
./ngrok authtoken "$NGROK_TOKEN"
./ngrok tcp 22 --log ".ngrok.log" &
sleep 10
HAS_ERRORS=$(grep "command failed" < .ngrok.log)
if [[ -z "$HAS_ERRORS" ]]; then
echo ""
echo "To connect: $(grep -o -E "tcp://(.+)" < .ngrok.log | sed "s/tcp:\/\//ssh $USER@/" | sed "s/:/ -p /")"
echo ""
else
echo "$HAS_ERRORS"
exit 4
fi
创建 workflow:ssh-server.yml
点击Actions 然后按照图片所示点击 set up a workflow yourself

然后如下图所示填写名字和内容,内容在下面给出了.完成后点击右上角的start commit就行.

name: SSH Server
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Failed
run: ./dummy.sh
- name: Start SSH Server
if: ${{ failure() }}
env:
NGROK_TOKEN: ${{ secrets.NGROK_TOKEN }}
SSH_PASSWORD: ${{ secrets.SSH_PASSWORD }}
run: |
chmod +x ./ssh-server.sh && ./ssh-server.sh
- name: Sleep
if: ${{ failure() }}
run: sleep 1h
启动github action然后连接服务器

点击action,查看详情,箭头所示就是用ssh连接的方式,密码就是之前在secret里你自己设置的密码.
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
- 最新
- 最热
只看作者