name: SSH 준비 description: SSH 키를 설정하고 호스트를 known_hosts에 추가하는 스크립트 inputs: ssh-key: required: true host: required: true port: required: false default: "22" key-path: required: false default: ~/.ssh/deploy_key runs: using: composite steps: - shell: bash run: | set -eu SUDO="" [ "$(id -u)" -ne 0 ] && SUDO="sudo" if ! command -v ssh-keyscan >/dev/null 2>&1; then if command -v apt-get >/dev/null 2>&1; then $SUDO apt-get update $SUDO apt-get install -y --no-install-recommends openssh-client else echo "ssh-keyscan이 없습니다. openssh-client를 설치한 러너가 필요합니다." exit 1 fi fi mkdir -p ~/.ssh chmod 700 ~/.ssh KEY_PATH="${{ inputs.key-path }}" case "$KEY_PATH" in "~/"*) KEY_PATH="$HOME/${KEY_PATH#\~/}" ;; esac mkdir -p "$(dirname "$KEY_PATH")" printf '%s\n' "${{ inputs.ssh-key }}" > "$KEY_PATH" chmod 600 "$KEY_PATH" ssh-keyscan -p ${{ inputs.port }} -H "${{ inputs.host }}" >> ~/.ssh/known_hosts