From 4938a6057eb15da5f1e97ef589f83e35cfaae205 Mon Sep 17 00:00:00 2001 From: Demitrious Kelly Date: Tue, 31 Mar 2020 10:00:49 -0700 Subject: [PATCH] README update, and rebuild of index.js --- README.md | 5 +++++ dist/index.js | 47 +++++++++++++++++++++++++++++------------------ 2 files changed, 34 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index f53bbeb..3677e1b 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ I recommend you store your `ftp-password` as a secret. | `ftp-password` | Yes | CrazyUniquePassword&%123 | | FTP account password | | `local-dir` | No | deploy/ | ./ | Which local folder to deploy, path should be relative to the root and should include trailing slash. `./` is the root of the project | | `git-ftp-args` | No | See `git-ftp-args` section below | | Custom git-ftp arguments, this field is passed through directly into the git-ftp script | +| `known-hosts` | No | ```hostname ssh-rsa AAAAB3NzaC1y...``` | | The desired contents of your .ssh/known_hosts file | #### Advanced options using `git-ftp-args` Custom arguments, this field is passed through directly into the git-ftp script. See [git-ftp's manual](https://github.com/git-ftp/git-ftp/blob/master/man/git-ftp.1.md) for all options. @@ -73,6 +74,10 @@ Below is an incomplete list of commonly used args: | `--insecure` | Don't verify server's certificate | | `--cacert ` | Use as CA certificate store. Useful when a server has a self-signed certificate | +#### SFTP (FTP ovder SSH) +If you are getting a curl error similar to `SSL peer certificate or SSH remote key was not OK` and you are using SFTP (which is different from FTPS) then you need to supply a known_hosts entry via the `known-hosts` configuration option.. + +If you are on Linux, or OSX (using homebrew) you can install the OpenSSH packages and use `ssh-keyscan ` to get the known_hosts value needed for the server you are connecting to. ### Ignore specific files when deploying Add patterns to `.git-ftp-ignore` and all matching file names will be ignored. The patterns are interpreted as shell glob patterns. diff --git a/dist/index.js b/dist/index.js index ab6bc08..c0a4f8d 100644 --- a/dist/index.js +++ b/dist/index.js @@ -666,28 +666,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); const core = __importStar(__webpack_require__(470)); const exec = __importStar(__webpack_require__(986)); const fs_1 = __importDefault(__webpack_require__(747)); +const util_1 = __webpack_require__(669); +const writeFileAsync = util_1.promisify(fs_1.default.writeFile); function run() { return __awaiter(this, void 0, void 0, function* () { const userArguments = getUserArguments(); - if ('' !== userArguments.knownHosts) { - try { - yield exec.exec(`mkdir -v -p ${process.env['HOME']}/.ssh`); - yield exec.exec(`chmod 700 ${process.env['HOME']}/.ssh`); - fs_1.default.writeFile(process.env['HOME'] + '/.ssh/known_hosts', userArguments.knownHosts, (err) => { - if (err) - throw err; - console.log('Wrote ' + process.env['HOME'] + '/.ssh/known_hosts'); - }); - yield exec.exec(`chmod 755 ${process.env['HOME']}/.ssh/known_hosts`); - console.log("✅ Configured known_hosts"); - } - catch (error) { - console.error("⚠️ Error configuring known_hosts"); - core.setFailed(error.message); - ; - } - } try { + yield configureHost(userArguments); yield syncFiles(userArguments); console.log("✅ Deploy Complete"); } @@ -698,6 +683,25 @@ function run() { }); } run(); +function configureHost(args) { + return __awaiter(this, void 0, void 0, function* () { + if (args.knownHosts === "") { + return; + } + try { + const sshFolder = `${process.env['HOME']}/.ssh`; + yield exec.exec(`mkdir -v -p ${sshFolder}`); + yield exec.exec(`chmod 700 ${sshFolder}`); + writeFileAsync(`${sshFolder}/known_hosts`, args.knownHosts); + yield exec.exec(`chmod 755 ${sshFolder}/known_hosts`); + console.log("✅ Configured known_hosts"); + } + catch (error) { + console.error("⚠️ Error configuring known_hosts"); + throw error; + } + }); +} function getUserArguments() { return { ftp_server: core.getInput("ftp-server", { required: true }), @@ -1024,6 +1028,13 @@ module.exports = require("path"); /***/ }), +/***/ 669: +/***/ (function(module) { + +module.exports = require("util"); + +/***/ }), + /***/ 747: /***/ (function(module) {