paramiko

paramiko

paramiko使用private key SSH登陆服务器

服务端atool 发表了文章 • 0 个评论 • 744 次浏览 • 2016-08-01 15:24 • 来自相关话题

本文介绍的是使用 SSH方式通过密钥登录 服务器的方法。主要在windows上使用paramiko登陆linux服务器,分成为四步:
 
一、服务器生成rsa key
aaa@onlinegame-14-121:~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/aaa/.ssh/id_rsa): id_rsa_forpy
id_rsa_forpy already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_forpy.
Your public key has been saved in id_rsa_forpy.pub.
The key fingerprint is:
27:04:9f:0b:21:73:a7:2a:cd:4e:9e:43:2a:45:c2:29 aaa@onlinegame-14-121
The key's randomart image is:
+--[ RSA 2048]----+
| o + . |
|. . + * . |
|Eo. o + |
|.o o . o . |
| o * S . |
| . B . o |
|. . |
| . . |
| |
+-----------------+其中passphrase我没有输入,这样用python登陆的时候,就可以无密码登陆了。
注意,是在你将要登陆的linux服务器上生成key。
 
二、公钥添加到authorized_keys中
[aaa@host ~]$ cd .ssh
[aaa@host .ssh]$ cat id_rsa_forpy.pub >> authorized_keys如此便完成了公钥的安装。有些时候,可能会有一些权限问题,可以执行如下:
[aaa@host .ssh]$ chmod 600 authorized_keys
[aaa@host .ssh]$ chmod 700 ~/.ssh

 三、服务器开启密钥登陆功能
 
一般情况下,服务器可能是开启,如果没有,可以做下面的操作。
编辑 /etc/ssh/sshd_config 文件,进行如下设置:
RSAAuthentication yes
PubkeyAuthentication yes修改配置文件之后,需要重启ssh
service sshd restart
四、使用paramiko登陆执行命令
 
将上述第一步生成的id_rsa_forpy(密钥)下载到windows机器上,然后用他进行代码登陆。
 
使用pip安装paramiko,然后执行代码即可。
pip install paramikoPython代码如下:
 
# -*- coding: utf-8 -*-

import paramiko
import StringIO

ip = 'xx.xx.xxx.xxx'
username = 'aaa'
port = 22

key_string = '''-----BEGIN RSA PRIVATE KEY-----
xxxxxxx
-----END RSA PRIVATE KEY-----
'''
not_really_a_file = StringIO.StringIO(key_string)
private_key = paramiko.RSAKey.from_private_key(not_really_a_file)

paramiko.util.log_to_file('ssh.log')

s = paramiko.SSHClient()

s.load_system_host_keys()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())

print "Starting"
s.connect(ip, port, username, pkey=private_key)

stdin,stdout,stderr=s.exec_command('ls -lh')
print stdout.read()
s.close()

not_really_a_file.close()执行之后,就可以看到打印出aaa账户home目录的文件列表了。 查看全部
本文介绍的是使用 SSH方式通过密钥登录 服务器的方法。主要在windows上使用paramiko登陆linux服务器,分成为四步:
 
一、服务器生成rsa key
aaa@onlinegame-14-121:~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/aaa/.ssh/id_rsa): id_rsa_forpy
id_rsa_forpy already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_forpy.
Your public key has been saved in id_rsa_forpy.pub.
The key fingerprint is:
27:04:9f:0b:21:73:a7:2a:cd:4e:9e:43:2a:45:c2:29 aaa@onlinegame-14-121
The key's randomart image is:
+--[ RSA 2048]----+
| o + . |
|. . + * . |
|Eo. o + |
|.o o . o . |
| o * S . |
| . B . o |
|. . |
| . . |
| |
+-----------------+
其中passphrase我没有输入,这样用python登陆的时候,就可以无密码登陆了。
注意,是在你将要登陆的linux服务器上生成key。
 
二、公钥添加到authorized_keys中
[aaa@host ~]$ cd .ssh
[aaa@host .ssh]$ cat id_rsa_forpy.pub >> authorized_keys
如此便完成了公钥的安装。有些时候,可能会有一些权限问题,可以执行如下:
[aaa@host .ssh]$ chmod 600 authorized_keys
[aaa@host .ssh]$ chmod 700 ~/.ssh

 三、服务器开启密钥登陆功能
 
一般情况下,服务器可能是开启,如果没有,可以做下面的操作。
编辑 /etc/ssh/sshd_config 文件,进行如下设置:
RSAAuthentication yes
PubkeyAuthentication yes
修改配置文件之后,需要重启ssh
service sshd restart

四、使用paramiko登陆执行命令
 
将上述第一步生成的id_rsa_forpy(密钥)下载到windows机器上,然后用他进行代码登陆。
 
使用pip安装paramiko,然后执行代码即可。
pip install paramiko
Python代码如下:
 
# -*- coding: utf-8 -*-

import paramiko
import StringIO

ip = 'xx.xx.xxx.xxx'
username = 'aaa'
port = 22

key_string = '''-----BEGIN RSA PRIVATE KEY-----
xxxxxxx
-----END RSA PRIVATE KEY-----
'''
not_really_a_file = StringIO.StringIO(key_string)
private_key = paramiko.RSAKey.from_private_key(not_really_a_file)

paramiko.util.log_to_file('ssh.log')

s = paramiko.SSHClient()

s.load_system_host_keys()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())

print "Starting"
s.connect(ip, port, username, pkey=private_key)

stdin,stdout,stderr=s.exec_command('ls -lh')
print stdout.read()
s.close()

not_really_a_file.close()
执行之后,就可以看到打印出aaa账户home目录的文件列表了。

paramiko使用private key SSH登陆服务器

服务端atool 发表了文章 • 0 个评论 • 744 次浏览 • 2016-08-01 15:24 • 来自相关话题

本文介绍的是使用 SSH方式通过密钥登录 服务器的方法。主要在windows上使用paramiko登陆linux服务器,分成为四步:
 
一、服务器生成rsa key
aaa@onlinegame-14-121:~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/aaa/.ssh/id_rsa): id_rsa_forpy
id_rsa_forpy already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_forpy.
Your public key has been saved in id_rsa_forpy.pub.
The key fingerprint is:
27:04:9f:0b:21:73:a7:2a:cd:4e:9e:43:2a:45:c2:29 aaa@onlinegame-14-121
The key's randomart image is:
+--[ RSA 2048]----+
| o + . |
|. . + * . |
|Eo. o + |
|.o o . o . |
| o * S . |
| . B . o |
|. . |
| . . |
| |
+-----------------+其中passphrase我没有输入,这样用python登陆的时候,就可以无密码登陆了。
注意,是在你将要登陆的linux服务器上生成key。
 
二、公钥添加到authorized_keys中
[aaa@host ~]$ cd .ssh
[aaa@host .ssh]$ cat id_rsa_forpy.pub >> authorized_keys如此便完成了公钥的安装。有些时候,可能会有一些权限问题,可以执行如下:
[aaa@host .ssh]$ chmod 600 authorized_keys
[aaa@host .ssh]$ chmod 700 ~/.ssh

 三、服务器开启密钥登陆功能
 
一般情况下,服务器可能是开启,如果没有,可以做下面的操作。
编辑 /etc/ssh/sshd_config 文件,进行如下设置:
RSAAuthentication yes
PubkeyAuthentication yes修改配置文件之后,需要重启ssh
service sshd restart
四、使用paramiko登陆执行命令
 
将上述第一步生成的id_rsa_forpy(密钥)下载到windows机器上,然后用他进行代码登陆。
 
使用pip安装paramiko,然后执行代码即可。
pip install paramikoPython代码如下:
 
# -*- coding: utf-8 -*-

import paramiko
import StringIO

ip = 'xx.xx.xxx.xxx'
username = 'aaa'
port = 22

key_string = '''-----BEGIN RSA PRIVATE KEY-----
xxxxxxx
-----END RSA PRIVATE KEY-----
'''
not_really_a_file = StringIO.StringIO(key_string)
private_key = paramiko.RSAKey.from_private_key(not_really_a_file)

paramiko.util.log_to_file('ssh.log')

s = paramiko.SSHClient()

s.load_system_host_keys()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())

print "Starting"
s.connect(ip, port, username, pkey=private_key)

stdin,stdout,stderr=s.exec_command('ls -lh')
print stdout.read()
s.close()

not_really_a_file.close()执行之后,就可以看到打印出aaa账户home目录的文件列表了。 查看全部
本文介绍的是使用 SSH方式通过密钥登录 服务器的方法。主要在windows上使用paramiko登陆linux服务器,分成为四步:
 
一、服务器生成rsa key
aaa@onlinegame-14-121:~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/aaa/.ssh/id_rsa): id_rsa_forpy
id_rsa_forpy already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_forpy.
Your public key has been saved in id_rsa_forpy.pub.
The key fingerprint is:
27:04:9f:0b:21:73:a7:2a:cd:4e:9e:43:2a:45:c2:29 aaa@onlinegame-14-121
The key's randomart image is:
+--[ RSA 2048]----+
| o + . |
|. . + * . |
|Eo. o + |
|.o o . o . |
| o * S . |
| . B . o |
|. . |
| . . |
| |
+-----------------+
其中passphrase我没有输入,这样用python登陆的时候,就可以无密码登陆了。
注意,是在你将要登陆的linux服务器上生成key。
 
二、公钥添加到authorized_keys中
[aaa@host ~]$ cd .ssh
[aaa@host .ssh]$ cat id_rsa_forpy.pub >> authorized_keys
如此便完成了公钥的安装。有些时候,可能会有一些权限问题,可以执行如下:
[aaa@host .ssh]$ chmod 600 authorized_keys
[aaa@host .ssh]$ chmod 700 ~/.ssh

 三、服务器开启密钥登陆功能
 
一般情况下,服务器可能是开启,如果没有,可以做下面的操作。
编辑 /etc/ssh/sshd_config 文件,进行如下设置:
RSAAuthentication yes
PubkeyAuthentication yes
修改配置文件之后,需要重启ssh
service sshd restart

四、使用paramiko登陆执行命令
 
将上述第一步生成的id_rsa_forpy(密钥)下载到windows机器上,然后用他进行代码登陆。
 
使用pip安装paramiko,然后执行代码即可。
pip install paramiko
Python代码如下:
 
# -*- coding: utf-8 -*-

import paramiko
import StringIO

ip = 'xx.xx.xxx.xxx'
username = 'aaa'
port = 22

key_string = '''-----BEGIN RSA PRIVATE KEY-----
xxxxxxx
-----END RSA PRIVATE KEY-----
'''
not_really_a_file = StringIO.StringIO(key_string)
private_key = paramiko.RSAKey.from_private_key(not_really_a_file)

paramiko.util.log_to_file('ssh.log')

s = paramiko.SSHClient()

s.load_system_host_keys()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())

print "Starting"
s.connect(ip, port, username, pkey=private_key)

stdin,stdout,stderr=s.exec_command('ls -lh')
print stdout.read()
s.close()

not_really_a_file.close()
执行之后,就可以看到打印出aaa账户home目录的文件列表了。