此項目部署是以vue為例的,並且在MAC系統中
1. 生成公鑰和私鑰
ls -al cd .ssh 進入.ssh文件中生成公鑰和私鑰
ssh-keygen -t rsa -C 描述 -f 公鑰名稱 例如: ssh-keygen -t rsa -C zzfreallyhandsome -f deploy
在.ssh文件中會生成 deploy deploy.pub 兩個文件
2. 把公鑰拷貝到遠端的服務器
cd .ssh
scp deploy.pub root@遠端服務器公網:. 例如: scp deploy.pub root@39.102.68.192:. 拷貝到服務器根目錄下
拷貝時可能會報錯,內容為:The authenticity of host '39.102.68.192 (39.102.68.192)' can't be established.
解決方案:
第一種:ssh -o StrictHostKeyChecking=no 39.102.68.192
第二種:
ssh連接The authenticity of host can't be established
修改/etc/ssh/ssh_config文件的配置,以后則不會再出現此問題
最后面添加:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
如何在本地命令窗口驗證是否拷貝成功
ssh root@遠端服務器公網 例如:ssh root@39.102.68.192
FileZilla for Mac中文版下載地址:https://www.mac69.com/mac/168.html
3. 將公鑰寫到遠端服務器ssh文件的key中
ls -al cd .ssh 發現authorized_keys文件 vim authorized_keys
cat 公鑰 >> ~/.ssh/authorized_keys 例如: cat deploy.pub >> ~/.ssh/authorized_keys
4. 將私鑰拷貝到github中
settings -> Secrets -> Add a new secret -> Actions -> 選擇Node.js,Set up this workflow -> 增加配置,可在右側搜索ssh deploy
- name: deploy
uses: easingthemes/ssh-deploy@v2.1.2
env:
SSH_PRIVATE_KEY: ${{ secrets.ALIYUN }}
ARGS: "-r1tgoDzvO --delete"
SOURCE: "dist/"
REMOTE_HOST: "39.102.68.192"
REMOTE_USER: "root"
TARGET: "/www/webapp"
最后點擊 Start commit 按鈕,最后再點擊Actions
5. 查看ssh localhost是否運行成功
Ubuntu默認並沒有安裝ssh服務,如果通過ssh鏈接Ubuntu,需要自己手動安裝openssh-server。判斷是否安裝ssh服務,若出現ssh: connect to host localhost port 22: Connection refused錯誤,解決方案如下:
sudo apt-get install openssh-server
其中apt-get安裝可參考:https://www.cnblogs.com/zhenfeng95/p/12834635.html
來自https://blog.csdn.net/happygrilclh/article/details/80793606
