要使用Python连接Linux,可以使用以下步骤:
1、安装必要的库:在Python中,我们需要使用paramiko
库来建立SSH连接,可以使用pip命令来安装该库:
“`
pip install paramiko
“`
2、导入所需的模块:在Python脚本中,需要导入paramiko
库和相关的模块:
“`python
import paramiko
import re
“`
3、创建SSH客户端对象:使用paramiko.SSHClient()
方法创建一个SSH客户端对象:
“`python
client = paramiko.SSHClient()
“`
4、自动添加主机密钥(可选):为了避免每次连接时都手动确认主机密钥,可以使用client.set_missing_host_key_policy()
方法设置自动添加主机密钥的策略:
“`python
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
“`
5、连接到Linux服务器:使用client.connect()
方法连接到Linux服务器,并指定服务器的IP地址、端口号、用户名和密码(或密钥):
“`python
client.connect(‘<服务器IP地址>’, port=<端口号>, username='<用户名>’, password='<密码>’)
“`
或者使用密钥进行身份验证:
“`python
private_key = paramiko.RSAKey(filename='<私钥文件路径>’)
client.connect(‘<服务器IP地址>’, port=<端口号>, username='<用户名>’, pkey=private_key)
“`
6、执行命令:使用client.exec_command()
方法执行命令,并获取命令的输出结果:
“`python
stdin, stdout, stderr = client.exec_command(‘<命令>’)
“`
可以读取命令的输出结果:
“`python
output = stdout.read().decode(‘utf8’)
print(output)
“`
如果命令有错误输出,可以读取错误信息:
“`python
error = stderr.read().decode(‘utf8’)
print(error)
“`
7、关闭连接:完成操作后,使用client.close()
方法关闭SSH连接:
“`python
client.close()
“`
下面是一个示例代码,演示如何使用Python连接Linux并执行命令:
import paramiko import re SSH连接参数配置 server_ip = '192.168.0.1' # Linux服务器IP地址 port = 22 # SSH端口号,默认为22 username = 'your_username' # Linux用户名 password = 'your_password' # Linux密码(可选) or 'path/to/private_key' # SSH私钥文件路径(可选) command = 'ls l' # 要在Linux上执行的命令 创建SSH客户端对象并连接服务器 client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) if password: # 如果使用密码进行身份验证,则连接服务器时提供密码参数;否则提供私钥文件路径参数。 client.connect(server_ip, port, username, password) else: private_key = paramiko.RSAKey(filename=password) # 如果使用私钥进行身份验证,则创建私钥对象并提供私钥文件路径参数。 client.connect(server_ip, port, username, pkey=private_key) # print("Connected to server using private key") # 如果使用私钥进行身份验证,则打印成功消息。 else: # 如果使用密码进行身份验证,则连接服务器时不提供私钥文件路径参数。 print("Connected to server using password") # 如果使用密码进行身份验证,则打印成功消息。 # print("Connected to server using private key") # 如果使用私钥进行身份验证,则打印成功消息。 # print("Failed to connect to server") # 如果连接失败,则打印失败消息,else: # 如果使用密码进行身份验证,则连接服务器时不提供私钥文件路径参数,print("Connected to server using password") # 如果使用密码进行身份验证,则打印成功消息,print("Connected to server using private key") # 如果使用私钥进行身份验证,则打印成功消息,print("Failed to connect to server") # 如果连接失败,则打印失败消息。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/470341.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复