前端button如何对接import ssh # 建立 SSH 连接 client = ssh.SSHClient() client.load_system_host_keys() client.connect('remote_host', username='username', password='password') # 执行 shell 命令 command = 'sh /text/text.sh' stdin, stdout, stderr = client.exec_command(command) # 输出执行结果 print(stdout.read().decode()) # 关闭 SSH 连接 client.close()
时间: 2024-03-13 19:45:53 浏览: 147
前端无法直接与SSH进行对接,因为SSH连接需要在后端服务器上进行建立和执行,前端无法直接进行此操作。你需要在后端服务器上建立SSH连接,然后通过后端API与前端进行对接。
具体实现方式如下:
1. 在后端服务器上建立SSH连接,可以使用paramiko库实现:
```
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('remote_host', username='username', password='password')
```
2. 定义后端API,在API中调用SSH连接并执行相关命令:
```
from flask import Flask, request
import paramiko
app = Flask(__name__)
@app.route('/execute_command', methods=['POST'])
def execute_command():
command = request.json.get('command')
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('remote_host', username='username', password='password')
stdin, stdout, stderr = ssh.exec_command(command)
output = stdout.read().decode()
ssh.close()
return {'output': output}
if __name__ == '__main__':
app.run()
```
3. 在前端中调用后端API:
```
const executeCommand = async () => {
const command = 'sh /text/text.sh';
const response = await fetch('/execute_command', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ command })
});
const result = await response.json();
console.log(result.output);
}
```
这样就可以实现前端按钮与后端SSH连接的对接了。需要注意的是,为了保证SSH连接的安全性,建议将SSH连接的用户名和密码等敏感信息存储在后端的环境变量中,在代码中通过读取环境变量来获取这些信息。
阅读全文