-
-
Save batok/2352501 to your computer and use it in GitHub Desktop.
import paramiko | |
k = paramiko.RSAKey.from_private_key_file("/Users/whatever/Downloads/mykey.pem") | |
c = paramiko.SSHClient() | |
c.set_missing_host_key_policy(paramiko.AutoAddPolicy()) | |
print "connecting" | |
c.connect( hostname = "www.acme.com", username = "ubuntu", pkey = k ) | |
print "connected" | |
commands = [ "/home/ubuntu/firstscript.sh", "/home/ubuntu/secondscript.sh" ] | |
for command in commands: | |
print "Executing {}".format( command ) | |
stdin , stdout, stderr = c.exec_command(command) | |
print stdout.read() | |
print( "Errors") | |
print stderr.read() | |
c.close() |
Just a note, if you have generated your keys via puttygen and they are in ppk format, it's not going to work, go back to puttygen, load you ppk key and export it as OpenSSH (Conversion -> Export OpenSSH Key)
Worked perfectly for me. Thanks a lot!
Not working for me
Traceback (most recent call last):
File "/opt/cms/scripts/bam_sdrtrace.py", line 227, in
transfer_file1()
File "/opt/cms/scripts/bam_sdrtrace.py", line 148, in transfer_file1
k = paramiko.RSAKey.from_private_key_file("/home/esbc/.ssh/authorized_keys")
File "/usr/lib/python2.7/site-packages/paramiko/pkey.py", line 196, in from_private_key_file
key = cls(filename=filename, password=password)
File "/usr/lib/python2.7/site-packages/paramiko/rsakey.py", line 45, in init
self._from_private_key_file(filename, password)
File "/usr/lib/python2.7/site-packages/paramiko/rsakey.py", line 163, in _from_private_key_file
data = self._read_private_key_file('RSA', filename, password)
File "/usr/lib/python2.7/site-packages/paramiko/pkey.py", line 268, in _read_private_key_file
data = self._read_private_key(tag, f, password)
File "/usr/lib/python2.7/site-packages/paramiko/pkey.py", line 277, in _read_private_key
raise SSHException('not a valid ' + tag + ' private key file')
paramiko.ssh_exception.SSHException: not a valid RSA private key file
socket.py", line 918, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed
what's wrong
Not working for me, while use the key using ssh client it works
Traceback (most recent call last):
File "/Users/xx/code/compute-ops/scripts/launch_intance_benchmark.py", line 105, in
k = paramiko.RSAKey.from_private_key_file("/Users/xx/.ssh/id_rsa.pem")
File "/Users/xx/code/compute-ops/venv3/lib/python3.7/site-packages/paramiko/pkey.py", line 206, in from_private_key_file
key = cls(filename=filename, password=password)
File "/Users/xx/code/compute-ops/venv3/lib/python3.7/site-packages/paramiko/rsakey.py", line 48, in init
self._from_private_key_file(filename, password)
File "/Users/xx/code/compute-ops/venv3/lib/python3.7/site-packages/paramiko/rsakey.py", line 169, in _from_private_key_file
data = self._read_private_key_file('RSA', filename, password)
File "/Users/xx/code/compute-ops/venv3/lib/python3.7/site-packages/paramiko/pkey.py", line 279, in _read_private_key_file
data = self._read_private_key(tag, f, password)
File "/Users/xx/code/compute-ops/venv3/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
Converting the key
resolves the error
ssh-keygen -p -m PEM -f ~/.ssh/id_rsa
thanks.
if your private key is in .ppk, you need convert to .pem.
I resolve this problem with version paramiko-2.10.4
I see this error:
ModuleNotFoundError: No module named 'paramiko'
Hi, I've converted the file to OpenSSH (with puttygen)
but now if I use
pkey = pk.RSAKey.from_private_key_file(key_filename)
On the connect I got
If I use the filename
ssh.connect(hostname=ip_server, username=username, key_filename=key_filename)
I got