0

It seems like Paramiko has problems with RSA files. Either that, or there's something I don't understand. Here is what I did. First I generated the key pair:

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/me/.ssh/id_rsa): /tmp/test
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /tmp/test.
Your public key has been saved in /tmp/test.pub.
The key fingerprint is:
SHA256:Xfz89Pi/p+YccZzfUULJiyssLJ/lRs/voTETLyOT25Q me@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|             ... |
|           . .o  |
|            o....|
|         . ..o.oo|
|       .S.. ..+o+|
|      . o =..+ *=|
|       o *++E = =|
|        o o*oO.+.|
|         .. o=*o*|
+----[SHA256]-----+

And then I tried to import that file:

$ python3
Python 3.7.0 (default, Aug 30 2018, 14:32:33) 
[GCC 8.2.1 20180801 (Red Hat 8.2.1-2)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import paramiko
>>> p = paramiko.RSAKey.from_private_key_file('/tmp/test')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.7/site-packages/paramiko/pkey.py", line 206, in from_private_key_file
    key = cls(filename=filename, password=password)
  File "/usr/local/lib/python3.7/site-packages/paramiko/rsakey.py", line 55, in __init__
    self._from_private_key_file(filename, password)
  File "/usr/local/lib/python3.7/site-packages/paramiko/rsakey.py", line 175, in _from_private_key_file
    data = self._read_private_key_file("RSA", filename, password)
  File "/usr/local/lib/python3.7/site-packages/paramiko/pkey.py", line 279, in _read_private_key_file
    data = self._read_private_key(tag, f, password)
  File "/usr/local/lib/python3.7/site-packages/paramiko/pkey.py", line 289, in _read_private_key
    raise SSHException("not a valid " + tag + " private key file")
paramiko.ssh_exception.SSHException: not a valid RSA private key file

I cannot see what I could have possibly done wrong. The paramiko version is 2.4.2

I read about a hack here where they edited the keyfile by changing "OPENSSH" to "RSA" but that did not work either.

Content of private key:

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEAuUWdShUCZQLCjwmfEKQmW55OQjl/s6rWEa9575vMKupd1EznCMrz
c+D4mlN42atkyJCqULuiUILZd7LDExlgWHEfstoWiZaMmKkz9fVuqtyFL4KhlME5imX3uz
W4nhNNfQmjanoq/K/UOZW2tXASILcUwAi9Qy5CkvaMj5DR7+sg1PmoCrWuzuEh5uH2V2VM
6YmekTV+3063Do7dsqogEKza66LwBYr8icL52WxsCxZ+w7rqvbbUVdLT8VF/oNDicA+T8m
VJwstVSHG0exeJ/q3eWlXx8oSFZbkterG4OPzS/JK4mwNv+QmcwjXfAYPT3qamgKY1qI3v
YEwOfM5UqQAAA9iImE0aiJhNGgAAAAdzc2gtcnNhAAABAQC5RZ1KFQJlAsKPCZ8QpCZbnk
5COX+zqtYRr3nvm8wq6l3UTOcIyvNz4PiaU3jZq2TIkKpQu6JQgtl3ssMTGWBYcR+y2haJ
loyYqTP19W6q3IUvgqGUwTmKZfe7NbieE019CaNqeir8r9Q5lba1cBIgtxTACL1DLkKS9o
yPkNHv6yDU+agKta7O4SHm4fZXZUzpiZ6RNX7fTrcOjt2yqiAQrNrrovAFivyJwvnZbGwL
Fn7Duuq9ttRV0tPxUX+g0OJwD5PyZUnCy1VIcbR7F4n+rd5aVfHyhIVluS16sbg4/NL8kr
ibA2/5CZzCNd8Bg9PepqaApjWoje9gTA58zlSpAAAAAwEAAQAAAQEAotWMaJAOirjiRtUt
+HJNRDjej1X55u8/NkwD35QO3akeznjIlfHKBw6zcO/sR2NcMOr0xgAjqJ9YgtuamC61fw
Xt1kPXixXGfGY6RPJxUbp/VEJ7wUISUJFOKjwNBuHwOPU/q1W0cmIXJIVxEAZv6FEA68bC
kUkXOhN3drbRzQpbAdOC4+oBans67MgkS2aPYUQ6/VkmRNHIEGTa1zp/0jlK/vrQmnS/NA
Si8c61R38proLzZkqNjd4Fd/Ryl7m5gngS4EqUIgk2KxjisEj5u6F/GyE7h7aKTMg30oxj
jF5qIKipX/aDcqySvdqC+ZarfA3y+4sHm9592L8t4BmQAQAAAIBleBkQc5mowwHQXDa1RN
/jUkNQmuGMBfy3y5OpVwoMt8zPaDGvKOeu9pVqp2+G0UY4vrC6gX+y+d+22PZIjfMytYqe
XVjPeEX+KJpRO4lVEZNj1mdpsXRTT+1b4LQ2Xji9Sfb6lv1RV/T1qVLtRA7GoQNdYY4v9B
fx6/j+wZSgpwAAAIEA6fyj9Mpg7HAcA1uafQgvtJKK1jtKZxtVVSYVlSvncqMX+UYbUcu0
esxcqBvdm0aEGXeIbjYpkPwbQBD2N5A2MIq7+J+FYYtQRsfNfnX9HAEu4aEpNgFiDFjGCT
bKXlDpq7YqhL3Utf62H7d6/yu0uLU1uXFuZynOZqAbOt447e0AAACBAMqzuBjWCKWM3WpQ
GeMJMBJU6r7xIq+GkcmUFB0GGML9QbGcHgUZrAKySg6nb1pXHLOZ78aWEUyg60K2SSwinJ
wCsD2iGo3Ze81qrB07hcNNlp6WVCvUwIs9gemM/LqB81Z/NmFWNtFnVuCxf2v6GpqCgFyE
/KDPpUBBoEynXkotAAAAG2R1bW15QGxvY2FsaG9zdC5sb2NhbGRvbWFpbgECAwQFBgc=
-----END OPENSSH PRIVATE KEY-----
klutt
  • 30,332
  • 17
  • 55
  • 95
  • Did you saw this post? It looks it's related: https://stackoverflow.com/questions/8382847/how-to-ssh-connect-through-python-paramiko-with-ppk-public-key – Jordi May 02 '19 at 10:09
  • @Jordi Yes. It did not help. – klutt May 02 '19 at 10:35
  • @MartinPrikryl Original? What do you mean? – klutt May 02 '19 at 10:38
  • I used `ssh-keygen -t rsa` and I got a public and a private key. That's it. I can post them if you like. – klutt May 02 '19 at 10:39
  • @MartinPrikryl No idea. How do I check? – klutt May 02 '19 at 10:54
  • I changed it using an editor. The only thing I did was to change the strings "BEGIN OPENSSH" and "END OPENSSH" to "BEGIN RSA" and "END RSA". What do you mean with rsa version? – klutt May 02 '19 at 11:02

0 Answers0