Python_ssh

本文介绍了如何在Python中使用paramiko库连接并执行SSH命令,包括基本连接、执行`pwd`和`ls`命令,以及处理改变目录的命令。实例展示了在Windows10和不同Linux环境中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python - SSH

https://www.sharetechnote.com/html/Python_ssh.html

注意:本文档中的Python脚本在Windows 10、Python 3.9.1上运行,脚本连接的SSH服务器运行在两种不同的系统上:一台运行Fedora 33的独立PC和一台运行在同一台PC上的VirtualBox中的Ubuntu 20.04.1上。

 

安装paramiko

 

要运行本文档中的示例,您需要安装paramiko包,如下所示:

 

pip install paramiko

基本连接

 

文件名: pyTTY.py

 

```python

import socket

import paramiko

from paramiko import SSHClient

 

# 创建SSH客户端

pyTTY = SSHClient()

pyTTY.load_system_host_keys()

pyTTY.set_missing_host_key_policy(paramiko.AutoAddPolicy())

 

# 连接到SSH服务器

pyTTY.connect('192.168.0.51', username='jaeku', password='********')

 

# 执行命令并打印结果

stdin, stdout, stderr = pyTTY.exec_command('pwd')

print(stdout.readlines())

 

stdin, stdout, stderr = pyTTY.exec_command('ls')

print(stdout.readlines())

 

# 关闭所有标准IO

stdin.close()

stdout.close()

stderr.close()

 

# 关闭客户端

pyTTY.close()

```

 

结果:

 

['/home/jaeku\n']

 

['Desktop\n', 'Documents\n', 'Downloads\n', 'Music\n', 'Pictures\n', 'Public\n', 'Templates\n', 'Videos\n']

 

注意: 对于IPv6连接,可以使用以下格式设置服务器IP。

 

```python

pyTTY.connect('2607:fea8:e260:a340:74ad:72ca:da40:815d', username='jaeku', password='********')

```

 

更改目录的命令

 

对于大多数命令,只需将命令字符串放在上面示例中所示的位置即可。但是,如果有任何使用更改目录('cd')的命令,则需要将'cd'命令和任何后续命令放在一个单独的命令字符串中,如下所示。

 

文件名: pyTTY.py

 

```python

import socket

import paramiko

from paramiko import SSHClient

 

# 创建SSH客户端

pyTTY = SSHClient()

pyTTY.load_system_host_keys()

pyTTY.set_missing_host_key_policy(paramiko.AutoAddPolicy())

 

# 连接到SSH服务器

pyTTY.connect('192.168.0.51', username='jaeku', password='********')

 

# 执行命令并打印结果

stdin, stdout, stderr = pyTTY.exec_command("cd /home/jaeku/Documents && pwd && ls -al")

print(stdout.readlines())

 

# 关闭所有标准IO

stdin.close()

stdout.close()

stderr.close()

 

# 关闭客户端

pyTTY.close()

```

 

结果:

 

['/home/jaeku/Documents\n', 'total 16\n', 'drwxr-xr-x 2 jaeku jaeku 4096 Dec 19 15:59 .\n', 'drwxr-xr-x 16 jaeku jaeku 4096 Dec 13 02:36 ..\n', '-rw-r--r-- 1 root root 5 Dec 19 15:59 docs.txt\n', '-rw-r--r-- 1 root root 5 Dec 19 15:59 test.txt\n']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值