Can't generate a JWT token in jwt.io with Private key

1.6k views Asked by At

I'm trying to test a feature of a software I'm building regarding JWTs to learn about it, which is using Firebase JWT PHP package

I'm trying to create a test case for using keys pairs as encoding/decoding, but can't get the http://jwt.io page to create a token with my key.

These are the keys I created using ssh-keygen command, without any modification.

I go to the page, select HS256 / 384 / 512 and remove the keys that the page have by default. Then I paste my private key so to sign my data. However the page won't generate any JWT.

What am I doing wrong?

I did notice that the example keys in the page say RSA KEY and they are shorter than mine, that's why I tried the other HS* options

Also, if I choose to set a password on my key, will it work for JWT?

-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----

Public

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDYIDKzHwsTMa7cS9YpN/tjHw3friJ8l9b1ontuu2uDaQCFoGYfYzAM76ij++X7x81I43sANl6j+SN/1eC8PIrFbIJRcjG4U5YrL3i08LAgElvthH+0+Hddww16W2sv+SeGGNOcHNNFoCmO/aDaRvwkR2fp6B9LCEG7/MyNC2RaospM7upn5vfbNpdC8vGIBiV8v3AooyqV9G/hS7pMPNdkOCF9JndMjn4QhNy1otbjAj6y5XfGb3Ofz4tKep2RGFcHBbOFTkIKRYqUwCrpEQqyfRXeTJqPnzaCOVvjN1/+4lzedafvm49KXUOEwtPWSBufqihCVajtKVO92bZNtJwCAtfI9PZHBx5OTe/BRzmhkTziNXtgKqvCi+edwWTiyIEyz+fakdBpzrzVi2KgSyanc/LVPU8GNMuSqL1DWrmZIvdGYNjz1IrEDpoJtv64R/BL+pNJjB/qk9HS1d3kk8GgT12F/OxgZd6AsMB/1dL4a85wJ9GTkNa3jMiYy4wKFzM= jorgee@jorgee
1

There are 1 answers

0
JorgeeFG On BEST ANSWER

It turns out that the key must be in PEM format and is not what I had, the default format.

ssh-keygen -t rsa -b 2048 -m PEM -f mykey.key
# Don't add passphrase
openssl rsa -in mykey.key -pubout -outform PEM -out mykey.pub

Example Private Key

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAqBfiDg2wY5S4ZCx58s2t1f6YjV6bPETX7Ru81loI0rgdDLqS
kEd2JmnxSEQ/7lvPvlMbHGPK0WkhQlBjyiIf8fTAo/Jts+Zh2V1ACBcV72pGyLBc
JGopDO9RYDGK/VNvni4osVb+QXDV9yo/o2fE86KE/yK5K5bz00YW27/C5SjXeJFb
CAdZzjuO02SXYWEJt3poNcew5kavHnUmx8fYr1MdIlvEe+auNArsF0uMz/1StWIx
0u349IQJBoWmtCXrVYStGZNrBvaSFa/MzR+h2XnUbDRnRUfN5drDoIq/qYMXbRoP
wFzLquARuJsHJVhO8+2fNQLt4lgBXFKYC/HX3wIDAQABAoIBADdxKS5ZdYRi2S6x
PMfI7z1V7Bs0yR7n1hBuxaotqBtYfrxkDVNpPp8M8nhTioKj5bFw19BVWeAYPNAS
k9dnygGUKLXqkCR2KG/5QdVpR+LfutkW0k1wdnm9tal0rdNAYeBaeTGE7/fFr80G
MldDMsLpJ9S/LzQhZeqZg5CXf0D13ran7r9ZsaxLBctY0WRYjvMKBCKIQhWWsxXH
Wl4gsTQqra/Ai4cswL2JgJ0YVizVOd9m0uBHBdTvIE+P6+HFgg7cE+wE1HUUrUuO
Gp9eneZCNWSKPykRIKAxPwW324M+/2lg3n7CMKqpAX0dcIvUSuxu5H9zqFtBp3zN
ODT8AwECgYEA1VC+MFoLMXsrfxjlTQaM1hdegbImiB/IdxJHXTJK6iVTHioYw9eC
Sn4Als42lggiQIX6L9akXqO6w/SdJRZHK3bIWc9fEfdyXIHx84Lim/9fDZQsdaFB
18nLin2CC+IXCCdWcY9fmSziS3gK2KjzaLE246ssWxS/kK2dfbrosxcCgYEAybqZ
r/5q/yJnM6fxl1IvHhNm2m2Agy/vPcYiOhNeDY7JNi1W9GxlDcAmx0emQ3ZuCQju
hKYkY/rji/RYW+NlblaD0xlm75ZTGno3DHtlapo+1MlBULmfJLVViHNLxFKSfpfP
ReTOZnMTa/uaEA7P4YPIJ5EhtU2SWBEvpJ4bnnkCgYEAlGw56Sq93w/0k9qesZl9
JPndqCBs7wouUatGPHJh7clKrBJeaOXqoipJ/qQ9FudR7dNK4T5X4AHMUcxCCywV
GQjtHpBLdhTWXceMsgK/6gsl+CzBQpeRWLPwC8yIT/xgSiwU2a8ItWuliR1dbqMf
uhiUOJVBp54oLGKg0nrarsECgYA2toyehkOg5UTWZtOItjqfTqXT0mVLr4GU4JtB
4yTcSoDaV9vAuXGDFD2wSQeYPpPDkY+XnLQ8Bb0XpXMdoQROs9pXNAmOK9hoUwOB
OCqeii1Gazty2JWIUEJdmt/O5JJlEWmfTFqKwOVgoUH83veU87giuyNIWDy79BVW
8acOCQKBgEtJIu9x/4ubpumPO94R6tyTTZVjCxJpnW3Nlc1/Ly/i/TbhYJ2BNlkz
JA2HxQSun456xqAJa38yo0Ciyq65hkO0BmHygwvgY0f6IKnq0dCzmD80/mrWK6cx
HqS++Bajrma/RQc+KGuyLqm/Ub5khTiWgszYjJ+GeD2d96YBXQ7I
-----END RSA PRIVATE KEY-----

Example Public Key

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqBfiDg2wY5S4ZCx58s2t
1f6YjV6bPETX7Ru81loI0rgdDLqSkEd2JmnxSEQ/7lvPvlMbHGPK0WkhQlBjyiIf
8fTAo/Jts+Zh2V1ACBcV72pGyLBcJGopDO9RYDGK/VNvni4osVb+QXDV9yo/o2fE
86KE/yK5K5bz00YW27/C5SjXeJFbCAdZzjuO02SXYWEJt3poNcew5kavHnUmx8fY
r1MdIlvEe+auNArsF0uMz/1StWIx0u349IQJBoWmtCXrVYStGZNrBvaSFa/MzR+h
2XnUbDRnRUfN5drDoIq/qYMXbRoPwFzLquARuJsHJVhO8+2fNQLt4lgBXFKYC/HX
3wIDAQAB
-----END PUBLIC KEY-----