安装SSHTunnel模块:
pip install sshtunnel
使用账号密码登录
# coding:utf-8
'''Note:
ssh登录服务器 -- 账号密码登录
Author:Qredsun
Date:2019/5/28
'''
import paramiko
def LoginServerWithPwd(
hostname = '192.168.16.45',
port=22,
username= 'root',
password= 'root',
command = 'ifconfig'
):
"""
账户密码登录服务器
:param hostname: 服务器地址
:param port: 服务器端口
:param username: 登录账号
:param password: 登录密码
:param command: 命令
:return: 命令结果
"""
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname, port, username, password )
# 执行命令
stdin, stdout, stderr = ssh.exec_command(command)
# 打印输出结果
print stdout.read()
# 关闭ssh
ssh.close()
return stdout.read()
代码执行结果:
使用密钥文件登录服务器
# coding:utf-8
'''
Note:
ssh登录服务器 -- 密钥登录
Author:Qredsun
Date:2019/5/28
'''
import paramiko
def LoginServerWithPkey(
host = '192.168.16.45',
port = 22,
username = "jump",
private_key_path = 'private',
command = 'hostname'
):
"""
密钥登录服务器
:param host: 服务器地址
:param port: 服务器端口
:param username: 登录账号
:param private_key_path: 密钥地址
:param command: 命令
:return: 命令结果
"""
# 获取私钥
private_key = paramiko.RSAKey.from_private_key_file(private_key_path)
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(host, port, username, pkey=private_key)
# 执行命令
stdin, stdout, stderr = ssh.exec_command(command)
result = stdout.read()
# 打印结果
print result
ssh.close()
return result
代码运行结果: