Giter Club home page Giter Club logo

sftp-deploy-action's People

Contributors

alfreddagenais avatar juliangro avatar stan-chen avatar wlixcc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

sftp-deploy-action's Issues

Invalid key format

Bug description

Invalid key format.
I'm sure the key is correct: I use it personally to connect to the server.

My config

on: push
name: Deploy to CI over SFTP
jobs:
  FTP-Deploy-Action:
    name: FTP-Deploy-Action
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
      with:
        fetch-depth: 2
    - name: deploy file
      uses: wlixcc/[email protected]
      with:
        username: 'aeris'
        server: 'ci-apps-dev.yunohost.org'
        private_key: ${{ secrets.DeployKey }} 
        local_path: './*'
        remote_path: '/data/pterodactyl_ynh' #make sure dir exist
        args: '-o ConnectTimeout=5'

Logs

sftp start
Warning: Permanently added 'ci-apps-dev.yunohost.org,51.15.209.133' (ECDSA) to the list of known hosts.
Debian GNU/Linux 9
Load key "../private_key.pem": invalid format
[email protected]: Permission denied (publickey,password).
Connection closed

No such file or directory

Hello

I just started using your action, and I never used any action with github before, so I'm a complete beginner here.
I found without any issue how to generate ssh key and use it, however I now face a new error: stat ./*: No such file or directory. But as you can see, I only used the default value for the local_path parameter (I also tried to remove it, in order to force the default value). And my repo is definitively not empty.

Here's the full logs:
Capture d’écran 2020-07-12 à 21 14 02

If anyone has any idea, please let me know!

local_path: No such file or directory

Hi, I am experiencing issues with the local_path variable, i've tried setting it to a specific folder or just commenting it out completely so it runs the default './*' but it never seems to work.

How could I fix this issue? Has anyone encountered this before?
image

Create a new issue

include this from .bashrc, .zshrc or

another shell startup file with:

source $HOME/.shellfishrc

Running from Secure ShellFish

this gives access to:

openUrl to open pages or deeps links

pbcopy to copy text to iOS clipboard

pbpaste to paste from iOS clipboard

quicklook to preview files

runShortcut to run Shortcuts

setbarcolor to change toolbar color

sharesheet to invoke iOS share sheet

snip to add new snippets

textastic to edit files with Textastic

In any terminal use:

notify to post notifications

widget to change lock/home screen

widgets & apple watch complications

this part does nothing outside ShellFish

if [[ "$LC_TERMINAL" = "ShellFish" ]]; then
ios_printURIComponent() {
awk 'BEGIN {while (y++ < 125) z[sprintf("%c", y)] = y
while (y = substr(ARGV[1], ++j, 1))
q = y ~ /[a-zA-Z0-9]/ ? q y : q sprintf("%%%02X", z[y])
printf("%s", q)}' "$1"
}

ios_printBase64Component() {
echo -n "$1" | base64
}

which printf > /dev/null
ios_hasPrintf=$?
ios_printf() {
if [ $ios_hasPrintf ]; then
printf "$1"
else
awk "BEGIN {printf "$1"}"
fi
}

ios_sequence() {
if [[ -n "$TMUX" ]]; then
OUTPUT=$(
ios_printf '\033Ptmux;\033\033]'
echo -n "$1" | tr -d '[:space:]'
ios_printf '\a\033\' )
else
OUTPUT=$(
ios_printf '\033]'
echo -n "$1" | tr -d '[:space:]'
ios_printf '\a' )
fi
if [ -t 1 ] ; then
echo -n $OUTPUT
elif [[ -n "$SSH_TTY" ]]; then
echo -n $OUTPUT > $SSH_TTY
else
echo >&2 'Standard output is not tty and there is no $SSH_TTY'
fi
}

ios_sequence_spaced() {
if [[ -n "$TMUX" ]]; then
OUTPUT=$(
ios_printf '\033Ptmux;\033\033]'
echo -n "$1"
ios_printf '\a\033\' )
else
OUTPUT=$(
ios_printf '\033]'
echo -n "$1"
ios_printf '\a' )
fi
if [ -t 1 ] ; then
echo -n $OUTPUT
elif [[ -n "$SSH_TTY" ]]; then
echo -n $OUTPUT > $SSH_TTY
else
echo >&2 'Standard output is not tty and there is no $SSH_TTY'
fi
}

prepare fifo for communicating result back to shell

ios_prepareResult() {
FIFO=$(mktemp)
rm -f $FIFO
mkfifo $FIFO
echo $FIFO
}

wait for terminal to complete action

ios_handleResult() {
FIFO=$1
if [ -n "$FIFO" ]; then
read <$FIFO -s
rm -f $FIFO

  if [[ $REPLY = error* ]]; then
    echo "${REPLY#error=}" | base64 >&2 -d
    return 1
  fi

  if [[ $REPLY = result* ]]; then
    echo "${REPLY#result=}" | base64 -d
  fi
fi

}

sharesheet() {
if [[ $# -eq 0 ]]; then
if tty -s; then
cat <<EOF
Usage: sharesheet [FILE]...

Present share sheet for files and directories. Alternatively you can pipe in text and call it without arguments.

If arguments exist inside the Files app changes made are written back to the server.
EOF
return 0
fi
fi

FIFO=$(ios_prepareResult)
OUTPUT=$(
  awk 'BEGIN {printf "6;sharesheet://?ver=2&respond="}'
  ios_printBase64Component "$FIFO"
  awk 'BEGIN {printf "&pwd="}'
  ios_printBase64Component "$PWD"
  awk 'BEGIN {printf "&home="}'
  ios_printBase64Component "$HOME"
  for var in "$@"
  do
    awk 'BEGIN {printf "&path="}'
    ios_printBase64Component "$var"
  done
  if [[ $# -eq 0 ]]; then
    text=$(cat -)
    awk 'BEGIN {printf "&text="}'
    ios_printBase64Component "$text"
  fi
 )
ios_sequence "$OUTPUT"
ios_handleResult "$FIFO"

}

quicklook() {
if [[ $# -eq 0 ]]; then
if tty -s; then
cat <<EOF
Usage: quicklook [FILE]...

Show QuickLook preview for files and directories. Alternatively you can pipe in text and call it without arguments.
EOF
return 0
fi
fi

FIFO=$(ios_prepareResult)
OUTPUT=$(
  awk 'BEGIN {printf "6;quicklook://?ver=2&respond="}'
  ios_printBase64Component "$FIFO"
  awk 'BEGIN {printf "&pwd="}'
  ios_printBase64Component "$PWD"
  awk 'BEGIN {printf "&home="}'
  ios_printBase64Component "$HOME"
  for var in "$@"
  do
    awk 'BEGIN {printf "&path="}'
    ios_printBase64Component "$var"
  done
  if [[ $# -eq 0 ]]; then
    text=$(cat -)
    awk 'BEGIN {printf "&text="}'
    ios_printBase64Component "$text"
  fi
)
ios_sequence "$OUTPUT"
ios_handleResult "$FIFO"

}

textastic() {
if [[ $# -eq 0 ]]; then
cat <<EOF
Usage: textastic

Open in Textastic 9.5 or later.
File must be in directory represented in the Files app to allow writing back edits.
EOF
else
if [ ! -e "$1" ]; then
touch "$1"
fi
OUTPUT=$(
awk 'BEGIN {printf "6;textastic://?ver=2&pwd="}'
ios_printBase64Component "$PWD"
awk 'BEGIN {printf "&home="}'
ios_printBase64Component "$HOME"
awk 'BEGIN {printf "&path="}'
ios_printBase64Component "$1"
)
ios_sequence "$OUTPUT"
fi
}

setbarcolor() {
if [[ $# -eq 0 ]]; then
cat <<EOF
Usage: setbarcolor

Set color of terminal toolbar color with values such as
red, #f00, #ff0000, rgb(255,0,0), color(p3 1.0 0.0 0.0)
EOF
else
OUTPUT=$(
awk 'BEGIN {printf "6;settoolbar://?ver=2&color="}'
ios_printBase64Component "$1"
)
ios_sequence "$OUTPUT"
fi
}

openUrl() {
if [[ $# -eq 0 ]]; then
cat <<EOF
Usage: openUrl

Open URL on iOS.
EOF
else
FIFO=$(ios_prepareResult)
OUTPUT=$(
awk 'BEGIN {printf "6;open://?ver=2&respond="}'
ios_printBase64Component "$FIFO"
awk 'BEGIN {printf "&url="}'
ios_printBase64Component "$1"
)
ios_sequence "$OUTPUT"
ios_handleResult "$FIFO"
fi
}

runShortcut() {
local baseUrl="shortcuts://run-shortcut"
if [[ $1 == "--x-callback" ]]; then
local baseUrl="shortcuts://x-callback-url/run-shortcut"
shift
fi

if [[ $# -eq 0 ]]; then
  cat <<EOF

Usage: runShortcut [--x-callback] [input-for-shortcut]

Run in Shortcuts app bringing back results if --x-callback is included.
EOF
else
local name=$(ios_printURIComponent "$1")
shift
if [[ $* == "-" ]]; then
local text=$(cat -)
local input=$(ios_printURIComponent "$text")
else
local input=$(ios_printURIComponent "$*")
fi
openUrl "$baseUrl?name=$name&input=$input"
fi
}

copy standard input or arguments to iOS clipboard

pbcopy() {
OUTPUT=$(
awk 'BEGIN {printf "52;c;"} '
if [ $# -eq 0 ]; then
base64 | tr -d '\n'
else
echo -n "$@" | base64 | tr -d '\n'
fi
)
ios_sequence "$OUTPUT"
}

paste from iOS device clipboard to standard output

pbpaste() {
FIFO=$(ios_prepareResult)
OUTPUT=$(
awk 'BEGIN {printf "6;pbpaste://?ver=2&respond="}'
ios_printBase64Component "$FIFO"
)
ios_sequence "$OUTPUT"
ios_handleResult "$FIFO"
}

create new snippets

snip() {
if [[ $# -eq 0 ]]; then
cat <<EOF
Usage: snip

EOF
else
OUTPUT=$(
awk 'BEGIN {printf "6;addsnippet://?ver=2&text="}'
ios_printBase64Component "$*"
)
ios_sequence "$OUTPUT"
fi
}

Secure ShellFish supports 24-bit colors

export COLORTERM=truecolor

We need to pass through escape sequences through tmux

if [[ -n "$TMUX" ]]; then
# ignore error from old versions of tmux without this command
tmux 2> /dev/null set -g allow-passthrough on || true
fi

if [[ -z "$INSIDE_EMACS" && $- = i ]]; then
# tmux mouse mode enables scrolling with
# swipe and mouse wheel
if [[ -n "$TMUX" ]]; then
tmux set -g mouse on
fi

# send the current directory using OSC 7 when showing prompt to
# make filename detection work better for interactive shell
update_terminal_cwd() {
  ios_sequence $(
    awk "BEGIN {printf \"7;%s\", \"file://$HOSTNAME\"}"
    ios_printURIComponent "$PWD"
  )
}
if [ -n "$ZSH_VERSION" ]; then
  precmd() { update_terminal_cwd; }
elif [[ $PROMPT_COMMAND != *"update_terminal_cwd"* ]]; then
  PROMPT_COMMAND="update_terminal_cwd${PROMPT_COMMAND:+; $PROMPT_COMMAND}"
fi

fi
fi

this part works in any context

Updates Terminal Data widget in Secure ShellFish

This command sends encrypted data through push notifications such

that it doesn't need to run from a Secure ShellFish terminal.

widget() {
if [[ $# -eq 0 ]]; then
cat <<EOF
Usage: widget [target] ...

Update widget on device from which this function was installed with a number of content parameters that can be string, progress, icon, target or color.

Each argument type is derived from input, where the first argument is assumed to be a target if it matches a target configured on the widget.

Progress has the form: 50% or 110/220

Icon must match valid SF Symbol name such as globe or terminal.fill

Colors must be hex colours such as #000 #ff00ff where the color is used for later content and 'foreground' switches back to default colour

Target is used to send different content to different widgets after configuring the widgets with different target identifiers which requires the pro unlock. The target parameter is never assumed unless --target is used and is effective until next --target parameter allowing updates of several widgets with a single command

String is the fallback type if nothing else matches, but content type can be forced for next parameter with --progress, --icon, --color, --text or --target with something like:
widget --text "50/100"

You can update several widgets at once by using --target to send all parameters until the next --target to a particular widget. Updating several widgets at once allows more total updates per day.

EOF
return 0
fi

local key=16fa6e6188715764135103183f30fee7cc392e1e99e78e3a5f4ffc167632b3f0
local user=0zK864dPbP15ZjhN7Sb5KTXuLhGwYCduJLyp2rGh
local iv=ab5bbeb426015da7eedcee8bee3dffb7

local plain=$(
echo Secure ShellFish Widget 1.0
for var in "$@"
do
echo "$var"
done)
local base64=$(echo "$plain" | openssl enc -aes-256-cbc -base64 -K $key -iv $iv)
curl -sS -X POST -H "Content-Type: text/plain" --data "$base64" "https://secureshellfish.app/push/?user=$user"
}

Shows notification on your device with Secure ShellFish installed.

This command sends encrypted data through push notifications such

that it doesn't need to run from a Secure ShellFish terminal.

notify() {
if [[ $# -eq 0 ]]; then
cat <<EOF
Usage: notify [title] ...

EOF
return 0
fi

local key=16fa6e6188715764135103183f30fee7cc392e1e99e78e3a5f4ffc167632b3f0
local user=0zK864dPbP15ZjhN7Sb5KTXuLhGwYCduJLyp2rGh
local iv=ab5bbeb426015da7eedcee8bee3dffb7

local plain=$(
echo Secure ShellFish Notify 1.0
for var in "$@"
do
echo "$var"
done)
local base64=$(echo "$plain" | openssl enc -aes-256-cbc -base64 -K $key -iv $iv)
curl -sS -X POST -H "Content-Type: text/plain" --data "$base64" "https://secureshellfish.app/push/?user=$user"
}

Option to force create non-existing output folder

Hey,
I try to upload my build to a non-existing output folder.
Unfortunately it seems this is not supported. Any way I could accomplish that?
sftp upload error! Error: Remote Error: No such directory

`delete_remote_files` removes the entire folder, not "all files in the remote path" as documented

The README says about delete_remote_files:

Set true will delete all files in the remote path before upload.

However, this is not quite accurate: it deletes the entire remote path rather than all files in it.

The line in entrypoint.sh calls rm -rf $6, but based on the documentation, I would expect rm -rf $6/*.

This is problematic in cases where permissions are only granted for that specific folder in the remote path - the folder cannot be recreated after deleting it.

I think the call should either be changed to rm -rf $6/*, or the documentation needs to be updated.

Permission denied (publickey,password).

So my publickey - privatekey pair also requires a password as I set it up to use one when generating the key pair so I am unaware of where I would specify the password that the keys need in order to be authorized.

File with dynamic name not found

Hi,
I'm having an issue where I want to upload a file which uses a variable for it's name and sftp throws an error: No such file or directory
e.g. filename - test-${var}.zip
Before I run the action I ran ls command and the file is there with the correct variable in the name, but when sftp action runs it doesn't find it.
Cheers!

tree 跟 stat 都顯示存在,怎麼它就偵測不到呢?

use sshpass
(1/1) Installing sshpass (1.06-r0)
Executing busybox-1.32.1-r9.trigger
OK: 12 MiB in 24 packages
Connection via sftp protocol only, skip the command to create a directory
SFTP Start
Warning: Permanently added '[***]:***,[128.199.157.[14](https://github.com/Endermanbugzjfc/FormInteractionFix/actions/runs/3391995688/jobs/5637715286#step:4:15)9]:***' (ED255[19](https://github.com/Endermanbugzjfc/FormInteractionFix/actions/runs/3391995688/jobs/5637715286#step:4:20)) to the list of known hosts.
sftp> put -r /home/runner/download/FormInteractionFix.phar plugins/FormInteractionFix.phar
stat /home/runner/download/FormInteractionFix.phar: No such file or directory
/home/runner/download
└── FormInteractionFix.phar

0 directories, 1 file
  File: /home/runner/download/FormInteractionFix.phar
  Size: 102333    	Blocks: 200        IO Block: 409[6](https://github.com/Endermanbugzjfc/FormInteractionFix/actions/runs/3391995688/jobs/5637715286#step:5:7)   regular file
Device: 801h/2049d	Inode: 295815      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1001/  runner)   Gid: (  121/  docker)
Access: ***-11-04 0[7](https://github.com/Endermanbugzjfc/FormInteractionFix/actions/runs/3391995688/jobs/5637715286#step:5:8):32:0[9](https://github.com/Endermanbugzjfc/FormInteractionFix/actions/runs/3391995688/jobs/5637715286#step:5:10).33[11](https://github.com/Endermanbugzjfc/FormInteractionFix/actions/runs/3391995688/jobs/5637715286#step:5:12)50397 +0000
Modify: ***-11-04 07:32:09.363151173 +0000
Change: ***-11-04 07:32:09.363[15](https://github.com/Endermanbugzjfc/FormInteractionFix/actions/runs/3391995688/jobs/5637715286#step:5:16)1173 +0000
 Birth: -

Workflow

裡面使用了 Context ,是它沒有支援嗎?
https://github.com/Endermanbugzjfc/FormInteractionFix/actions/runs/3391995688/jobs/5637715286

Files permission

How set a specific permission for the uploaded files by chmod? I tried to add chmod 777 to argument after ConnectionTimeout, but not work.

Load key "../private_key.pem": invalid format ED25519?

            - name: Deploy to Server
              uses: wlixcc/[email protected]
              with:
                  local_path: blank/blank-*
                  remote_path: /github

                  server: ${{ secrets.SERVER_HOST }}
                  username: ${{ secrets.SERVER_USER }}
                  port: ${{ secrets.SERVER_PORT }}
                  ssh_private_key: ${{ secrets.SERVER_IDENTITY_FILE }}
Create directory if needed
Warning: Permanently added '[***]:***' (ECDSA) to the list of known hosts.
Load key "../private_key.pem": invalid format
***@***: Permission denied (publickey).

ed25519_256 pk without password
any idea?

Source IP - Connection timed out

Hello there,

I just created the action on my project and configured everything over there, but unfortunately I'm getting a message like this into the 'deploy file' section> ssh: connect to host ec2-MYIP.us-east-2.compute.amazonaws.com port 22: Operation timed out

image

Good thing is that I know what's happening. I have to allow as an Inbound Rule the following:

Type: SSH / Protocol: TCP / Post range: 22 / Source: ::/0;

image

As you can see below, it works fine when not specifying the source...
image

But obviously I don't want to do that for security reasons, so I need to find out the source I need to put there.
I've tried a lot of Github IP addresses already, but all of them were unsuccessful.

Does anyone here know what's the right source for it to work in a protected way?

Thanks in advance.

Create remote_path directory if not exists

If the directory specified through remote_path does not exist then it should be created by the action. It should also create missing parent directories as mkdir -p does.

Upload only changed file only

Hello, Is there any possbility not repeating the unchanged file just upload changed file. How we do it i didn't found anything in the documentation

Cannot find local directory that definitely exists

The action is running on a self hosted runner on AWS, and seems to be working until it tries to copy out of the local directory where it cannot find it. Below is the error message. Each "hidden" in it is just from me changing that for security, but the path is correct. Here's a screenshot from the EC2 terminal showing the directory is there: https://lms-data-axle-dpr.d.pr/RWDGf9

Could not chdir to home directory sftpgroup: No such file or directory
SFTP Start
sftp> put -r /usr/bin/actions-runner/_work/apps/apps/backend/projects/hidden/hidden/build-artifact/* data/dev/hidden/hidden
stat /usr/bin/actions-runner/_work/apps/apps/backend/projects/hidden/hidden/build-artifact/*: No such file or directory

Github Actions to use SFTP to send a file to Sourceforge

Thanks,

No error here. Many thanks to the author.

For anyone who cares, this works well in sending a file to Sourceforge.
I used the password method.

Setup:
https://github.com/AndreMikulec/testGithubActions/blob/98f547953df269946eaf0caddcd719ff6e45426f/.github/workflows/Test_SFTP_Deploy_Files.yml

- name: Deploy Files
  uses: wlixcc/[email protected]
  with:
    username: 'andremikulec,andremikulec.u'
    server: 'frs.sourceforge.net'
    port: 22
    local_path: './readme_Test_SFTP_Deploy_Files.md'
    remote_path: '/home/frs/project/andremikulec'
    sftp_only: true
    password: ${{ env.SF_ANDREMIKULEC_PWD }}

Run result:
https://github.com/AndreMikulec/testGithubActions/runs/7377842142?check_suite_focus=true#step:6:23

File is transferred:
https://sourceforge.net/projects/andremikulec/files/

Extra info

This sftp target is the same as what I use to get a file that is built on Appveyor to Sourceforge.

https://github.com/AndreMikulec/r-base/blob/40dda14d5957ea5f2190825d70df3bee23e1e966/appveyor.yml#L85

  - provider: FTP
    host: frs.sourceforge.net
    protocol: sftp
    # https://sourceforge.net/projects/andremikulec/files/
    username: andremikulec,andremikulec.u
    password:
      secure: AZOInJ/FinCYx+tbyshJR5VWUISswlz5yiGDqfgEXLg=
    artifact: "%APPVEYOR_PROJECT_SLUG%_%appveyor_build_version%_%version%_%DEPLOYNAME%.7z"
    folder: /home/frs/project/andremikulec
    application:
    active_mode: false

When I try(test) manually from the command line, this works fine, too.

Cygwin:

AnonymousUser@ANONYMOUST ~
$ sftp andremikulec,[email protected]
(andremikulec,[email protected]) Password:
Connected to frs.sourceforge.net.
sftp> pwd
Remote working directory: /
sftp> cd /home/frs/project/andremikulec
sftp> pwd
Remote working directory: /home/pfs/project/andremikulec
sftp>

PSFTP (from PuTTy tools)

psftp: no hostname specified; use "open host.name" to connect
psftp> open frs.sourceforge.net
login as: andremikulec,andremikulec.u
Keyboard-interactive authentication prompts from server:
| Password:
End of keyboard-interactive prompts from server
Remote working directory is /
psftp> cd /home/frs/project/andremikulec
psftp> pwd
Remote directory is /home/pfs/project/andremikulec
psftp>

Andre Mikulec

Every deploy is slow

Hello
every deploy is 20 min. when I push a file github. Just I edit a file. Why do I wait 20 min after deploy? What is wrong?
I think If I changed a file. just It should deploy in server. right?

on:
push:
branches: [ "develop" ]

jobs:
web-deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Deploy file
  uses: wlixcc/[email protected]
  with:
    server: ${{ secrets.TEST_FTP_IP }}
    remote_path: ${{ secrets.TEST_FTP_DIR }}
    username: ${{ secrets.TEST_FTP_USERNAME }}
    password: ${{ secrets.TEST_FTP_PASS }}

Reload Process After Files are updated

In the example, you only show how to install node dependencies but for any nodejs application and many others, you need to execute some kind of command to reload the process. In my case, I need to run pm2 reload <appName> so the changes are applied.

Adding it in the flow apparently doesn't work:
image

And Gives this error:
image

Permission denied (publickey)

Attempting to send changes in a Github Repository to a Cloud Machine using SFTP.
I generated a keypair with ssh-keygen -t rsa -b 4096 -C "applecake" -m PEM`
I copied the public key to the server's authorized keys under /home/applecake/.ssh/authorized_keys
I then uploaded the private key as an Action Secret

Note
The key came out in this format [some parts marked redacted]
-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: [redacteddek] [redactedkey] -----END RSA PRIVATE KEY-----
but I also tried
-----BEGIN RSA PRIVATE KEY----- [redactedkey] -----END RSA PRIVATE KEY-----
Both failed.

I uploaded and committed a file to test it.
All jobs were successful except "SFTP Deploy"
These were the logs(redacted).
Run wlixcc/[email protected] with: username: *** server: *** port: 22 ssh_private_key: *** local_path: .[redacted] remote_path: [redacted] args: -o ConnectTimeout=5 /usr/bin/docker run --name e21d20576865b4dd686589f1848177b27_30f637 --label 84217e --workdir /github/workspace --rm -e INPUT_USERNAME -e INPUT_SERVER -e INPUT_PORT -e INPUT_SSH_PRIVATE_KEY -e INPUT_LOCAL_PATH -e INPUT_REMOTE_PATH -e INPUT_ARGS -e HOME -e GITHUB_JOB -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_REPOSITORY_OWNER -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RETENTION_DAYS -e GITHUB_RUN_ATTEMPT -e GITHUB_ACTOR -e GITHUB_WORKFLOW -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GITHUB_EVENT_NAME -e GITHUB_SERVER_URL -e GITHUB_API_URL -e GITHUB_GRAPHQL_URL -e GITHUB_REF_NAME -e GITHUB_REF_PROTECTED -e GITHUB_REF_TYPE -e GITHUB_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e GITHUB_ACTION_REPOSITORY -e GITHUB_ACTION_REF -e GITHUB_PATH -e GITHUB_ENV -e RUNNER_OS -e RUNNER_ARCH -e RUNNER_NAME -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e ACTIONS_CACHE_URL -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/RMCC/RMCC":"/github/workspace" 84217e:21d20576865b4dd686589f1848177b27 "***" "***" "22" "***" "[redacted] "[redacted]***[redacted]" "-o ConnectTimeout=5" ssh start Warning: Permanently added '***' (ECDSA) to the list of known hosts. ***@***: Permission denied (publickey).

exec request failed on channel 0

My deploy action ends with:
exec request failed on channel 0
Log:
image

My action:
image

With WinSCP i can login just fine
Any idea what can that be?

How to overwrite files in remote directory

I don't see any option to overwrite files in the remote directory. How do I accomplish this? I cannot use the delete_remote_files input as some of the files in the remote directory cannot be deleted as they are not contained in the SFTP deployment.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.