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-----