python远程登录linux执行命令
-
要实现Python远程登录Linux执行命令,可以使用paramiko模块。下面是一个示例代码:
“`python
import paramikodef execute_ssh_command(hostname, port, username, password, command):
# 创建SSH客户端对象
client = paramiko.SSHClient()
# 允许连接不在known_hosts文件中的主机
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
# 连接SSH服务器
client.connect(hostname=hostname, port=port, username=username, password=password)
# 执行命令
stdin, stdout, stderr = client.exec_command(command)
# 获取命令执行结果
result = stdout.read().decode()
# 打印结果
print(result)
except Exception as e:
print(f”执行命令出错:{e}”)
finally:
# 关闭SSH连接
client.close()# 示例用法
hostname = ‘192.168.1.100’
port = 22
username = ‘your_username’
password = ‘your_password’
command = ‘ls -l’
execute_ssh_command(hostname, port, username, password, command)
“`说明:
1. 首先,导入paramiko模块。
2. 然后,定义一个`execute_ssh_command`函数来执行SSH连接和命令执行操作。
3. 在函数内部,首先创建一个SSH客户端对象,并设置允许连接不在known_hosts文件中的主机。
4. 接着,使用`client.connect()`方法连接SSH服务器,传入目标主机名、端口、用户名和密码。
5. 使用`client.exec_command()`方法执行要执行的命令,返回的是一个三元组(stdin, stdout, stderr)。
6. 通过读取stdout来获取命令执行结果。
7. 最后,关闭SSH连接。请根据自己的实际情况修改hostname、port、username、password和command参数,然后调用`execute_ssh_command()`函数执行远程命令。
注意:请确保目标Linux主机已开启SSH服务,并且对应的用户名和密码是正确的。
2年前 -
在Python中,可以使用paramiko库来实现远程登录Linux并执行命令。paramiko是一个用于SSHv2协议的Python实现,它可以连接到远程服务器并执行各种命令。
以下是使用paramiko库进行远程登录Linux并执行命令的步骤:
1. 使用paramiko库导入必要的模块:
“`python
import paramiko
“`2. 创建SSHClient对象,并建立与远程服务器的连接:
“`python
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname, port, username, password)
“`
其中,hostname是远程服务器的主机名或IP地址,port是SSH端口(默认为22),username是登录用户名,password是登录密码。3. 执行命令并获取输出结果:
“`python
stdin, stdout, stderr = client.exec_command(command)
“`
其中,command是要执行的命令。4. 使用stdout来获取命令的输出结果:
“`python
output = stdout.read().decode(‘utf-8’)
“`
使用decode(‘utf-8’)将字节流转换为字符串。5. 关闭与远程服务器的连接:
“`python
client.close()
“`通过以上步骤,我们可以编写一个函数来实现远程登录Linux并执行命令的功能:
“`python
import paramikodef remote_login(hostname, port, username, password, command):
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname, port, username, password)
stdin, stdout, stderr = client.exec_command(command)
output = stdout.read().decode(‘utf-8’)
client.close()
return output
“`使用该函数可以实现远程登录Linux并执行命令:
“`python
output = remote_login(hostname, port, username, password, command)
print(output)
“`注意:在使用paramiko库之前,需要确保已经安装了该库,可以使用pip install paramiko命令进行安装。另外,为了安全起见,建议使用SSH密钥认证而不是密码认证来进行远程登录。
2年前 -
远程登录Linux系统并执行命令,可以使用Python的paramiko模块。Paramiko是一个纯Python编写的SSHv2协议实现,可以与远程服务器进行安全的通讯。
下面是一步步的操作流程:
1. 安装paramiko模块:在命令行中使用pip命令进行安装。
“`shell
pip install paramiko
“`2. 导入paramiko模块:
“`python
import paramiko
“`3. 建立SSH连接:
“`python
# 创建SSH客户端对象
ssh = paramiko.SSHClient()# 自动添加服务器的主机密钥到本地的known_hosts文件中
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 连接远程服务器
ssh.connect(hostname, port, username, password)
“`4. 执行命令:
“`python
# 执行命令并获取输出
stdin, stdout, stderr = ssh.exec_command(command)# 读取输出
output = stdout.readlines()# 打印输出
for line in output:
print(line.strip())
“`5. 关闭SSH连接:
“`python
# 关闭连接
ssh.close()
“`完整的示例代码如下:
“`python
import paramikodef run_command(hostname, port, username, password, command):
# 创建SSH客户端对象
ssh = paramiko.SSHClient()# 自动添加服务器的主机密钥到本地的known_hosts文件中
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())try:
# 连接远程服务器
ssh.connect(hostname, port, username, password)# 执行命令并获取输出
stdin, stdout, stderr = ssh.exec_command(command)# 读取输出
output = stdout.readlines()# 打印输出
for line in output:
print(line.strip())
except paramiko.AuthenticationException:
print(“Authentication failed.”)
except paramiko.SSHException as sshException:
print(“Unable to establish SSH connection: %s” % sshException)
finally:
# 关闭连接
ssh.close()# 调用函数执行命令
run_command(“remote_hostname”, 22, “username”, “password”, “ls -l”)
“`在上述代码中,你需要替换”remote_hostname”、22、”username”和”password”为你实际的远程服务器主机名、端口、用户名和密码,”ls -l”为你想要执行的实际命令。
这样,你就可以使用Python远程登录Linux系统并执行命令了。
2年前