name: 透過 SSH 部屬
on:
workflow_dispatch:
jobs:
deploy:
runs-on: [self-hosted, Ubuntu, 24.04]
steps:
- name: 設定 SSH 金鑰(確保 `/var/ssh/` 存在)
run: |
if [ ! -d /var/ssh ]; then
echo "🔍 /var/ssh 目錄不存在,正在建立..."
sudo mkdir -p /var/ssh
sudo chmod 700 /var/ssh
else
echo "✅ /var/ssh 目錄已存在,跳過建立"
fi
if [ ! -f /var/ssh/id_rsa ]; then
echo "🔑 匯入 SSH 私鑰..."
echo "${{ secrets.SSH_PRIVATE_KEY }}" | sudo tee /var/ssh/id_rsa > /dev/null
sudo chmod 600 /var/ssh/id_rsa
else
echo "✅ SSH 私鑰已存在,跳過匯入"
fi
ssh-keyscan -H ${{ secrets.SSH_HOST }} | sudo tee -a /etc/ssh/ssh_known_hosts > /dev/null
- name: 透過 SSH 部署 到 伺服器
run: |
sudo ssh -i /var/ssh/id_rsa ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'EOF'
echo "✅ 部署完成!"
EOF
2025/02/28
如何在 GitHub Actions 中使用 SSH 連接遠端伺服器
再Repo的secrets加入SSH_PRIVATE_KEY / SSH_HOST / SSH_USER即可