python 如何使用 ssh 登录后服务器到A 在服务器A中在ssh 到服务器B 下发指令
时间: 2024-12-15 07:29:18 浏览: 5
在Python中,你可以使用第三方库`paramiko`来实现SSH连接和命令执行。以下是步骤:
首先,确保已安装`paramiko`模块,如果没有安装,可以使用`pip`安装:
```bash
pip install paramiko
```
然后,你可以编写一个Python脚本来完成这样的操作:
```python
import os
import paramiko
# 定义服务器A和B的信息
server_A_info = {
'host': 'A_server_ip',
'username': 'your_username_A',
'password': 'your_password_A', # 或者使用密钥对
'port': 22,
}
# 创建SSH客户端对象
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 添加主机键自动信任
# 连接到服务器A
ssh_client.connect(server_A_info['host'], server_A_info['port'], username=server_A_info['username'], password=server_A_info['password'])
print(f"Connected to Server A ({server_A_info['host']}:{server_A_info['port']})")
try:
# 执行命令,这里假设在服务器A上有一个shell脚本或命令需要执行
stdin, stdout, stderr = ssh_client.exec_command('bash -c "cd /path/to/directory && your_command_on_B.sh"')
# 获取输出结果
output = stdout.read().decode('utf-8').strip()
print(f"Command on Server B executed: {output}")
except Exception as e:
print(f"Error executing command on Server B: {e}")
finally:
# 关闭连接
ssh_client.close()
print("Disconnected from Server A")
```
在这个例子中,你需要替换`server_A_info`中的IP地址、用户名、密码和路径等为你实际的环境信息。在服务器A上执行完毕之后,如果一切顺利,你会看到服务器B命令的输出。
阅读全文