¿Cómo clonar un repositorio con SSH usando simple-git ?
Estoy tratando de clonar usando este código
const git: SimpleGit = simpleGit(); const sshUri = 'git@..........' const localPath = '/usr/workspace'; git .clone( sshUri, localPath ).then((data) => { console.log('success'); }).catch((err) => { console.log(err); });Pero estoy recibiendo una excepción.
Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.Si su repositorio git es privado, deberá generar una clave SSH y agregar esta clave a su cuenta GIT.
ejemplo de código
private async cloneRepo() { const gitSSH = 'FILL YOUR SSH GIT ADDRESS'; const sourceDir = path.resolve(`${os.tmpdir()}/${this.projectKey}`); const sshKnownHosts = path.resolve(`${process.cwd()}/settings/ssh/known_hosts`) const sshKey = path.resolve(`${process.cwd()}/settings/ssh/id_ed25519`) const GIT_SSH_COMMAND = `ssh -o UserKnownHostsFile=${sshKnownHosts} -o StrictHostKeyChecking=no -i ${sshKey}`; console.log(sourceDir); const git: SimpleGit = simpleGit() .env('GIT_SSH_COMMAND', GIT_SSH_COMMAND) .clean(CleanOptions.FORCE); await git.clone(gitSSH, sourceDir, ['-b', 'YOUR-BRANCH-NAME', '--single-branch']) .then(() => console.log('finished')) .catch((err) => console.error('failed: ', err)); }