luvit/lit

lit auth "No private key"

natnat-mc opened this issue · 4 comments

I'm trying to authenticate myself with lit to publish a module, but lit auth tells me that I don't have a public key.

~/g/lit-jsonstream> lit auth [username]
lit version: 3.7.3
luvi version: v2.9.3
command: auth [username]
load config: /home/[machine username]/.litconfig
username: [username]
name: [my name]
email: [my email]
privateKey: /home/[machine username]/.ssh/id_rsa
fail: [string "bundle:libs/core.lua"]:357: No private key
stack traceback:
        [C]: in function 'assert'
        [string "bundle:libs/core.lua"]:357: in function 'authUser'
        [string "bundle:commands/auth.lua"]:63: in function <[string "bundle:commands/auth.lua"]:1>
        [string "bundle:main.lua"]:69: in function <[string "bundle:main.lua"]:56>
        [C]: in function 'xpcall'
        [string "bundle:main.lua"]:56: in function <[string "bundle:main.lua"]:48>

Except that I do have a private key at /home/[machine username]/.ssh/id_rsa, which I use to push to GitHub.

~/g/lit-jsonstream> wc -l /home/[machine username]/.ssh/id_rsa
27 /home/[machine username]/.ssh/id_rsa

I have recently reinstalled my machine and changed RSA keys, and it worked before, if this is relevant.

I'm having this same issue a year later! Really hoping someone can look into this.

OpenSSL is erroring when reading the key, but lit is just outputting a generic error instead of the actual reason. #275 should help.

@maya-bee Make sure your key uses PEM, nothing else.
For example, when generating your key using ssh keygen you would do something such as:

keygen -t rsa -b 4096 -C "your_email@example.com" -m PEM

the -m PEM will tell it to not use whatever other default is.
Your id_rsa file header should look like this

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,59A8A5

LONG_HASH_HERE
-----END RSA PRIVATE KEY-----

I've been running into this recently and just regenerating my key forcing PEM formatting fixed it.

I hit the same issue today. I guess ssh-keygen doesn't default to the format that openssl supports anymore on ubuntu.

I can confirm that generating the key with ssh-keygen -m PEM worked for me after I uploaded the new public key to github.