shimataro / ssh-key-action

GitHub Action that installs SSH key to .ssh
https://github.com/marketplace/actions/install-ssh-key
MIT License
579 stars 87 forks source link

Feature Request: strip cr/lf endings from ssh key #243

Open dieselburner opened 1 year ago

dieselburner commented 1 year ago

I'm running this action on Gitea, and today I have discovered Gitea saves secrets with cr/lf Windows style endings, which makes git clone fail, even though I run Gitea via Docker, and none of my computers have Windows:

Load key "/root/.ssh/id_rsa": invalid format
git@git.example.com: Permission denied (publickey).
fatal: Could not read from remote repository.

I had to add this extra step to fix the issue:

- name: Fix SSH key
  run: sed -i 's/\r$//g' /root/.ssh/id_rsa

I do realize this issue is on Gitea side, which I will report, but would appreciate if you could implement same functionality but within this action and add one extra config option, for such scenarios. Like:

- name: Install SSH Key
  uses: shimataro/ssh-key-action@v2.5.1
  with:
    key: ${{ secrets.SSH_KEY }}
    key_strip_cr: true
    known_hosts: ${{ secrets.SSH_KNOWN_HOSTS }}
    config: |
      Host git.example.com
        Port 12345
        User git

Thanks!

dieselburner commented 1 year ago

Apparently this is not Gitea related issue, but rather browser: https://github.com/whatwg/html/issues/6647 I work on Chrome, and seems like Chrome converts to crlf endings, which means if one adds ssh key into repository secrets, it is impossible to use this key without such a fix which I mentioned above.

Based on these facts, I think stripping cr from ssh key by default would be great.