📅  最后修改于: 2023-12-03 15:41:33.638000             🧑  作者: Mango
在 web 应用程序中,连接到远程服务器是一项常见的任务。SSH 协议是一种加密的安全协议,用于在远程计算机上执行文件传输和远程命令。它使用公钥和私钥来验证连接,从而确保安全连接。
在 JavaScript 中,可以使用第三方库来连接 SSH 服务器。本文将介绍如何使用随机生成的 SSH 密钥对来连接到 SSH 服务器。
const NodeRSA = require('node-rsa');
const key = new NodeRSA({b: 512}); // 生成一个 512 位的密钥对
const privateKey = key.exportKey('private');
const publicKey = key.exportKey('public');
console.log('私钥:', privateKey);
console.log('公钥:', publicKey);
NodeRSA 是一个流行的加密库,可以用于生成 SSH 密钥对。以上代码将生成一个 512 位的 SSH 密钥对并输出其私钥和公钥(以字符串形式)。
const SSHClient = require('ssh2').Client;
const node_ssh = require('node-ssh');
// 创建 SSH 客户端实例
const sshClient = new SSHClient();
const ssh = new node_ssh();
// 连接 SSH 服务器
const conn = sshClient.connect({
host: 'your-ssh-server.com',
port: 22,
username: 'your-username',
privateKey: privateKey
});
// 执行命令并输出响应
conn.then(() => {
return ssh.execCommand('ls -lh', {cwd: '/path/to/remote/directory'});
}).then((result) => {
console.log('STDOUT: ' + result.stdout);
sshClient.end();
});
使用 ssh2
库创建 SSH 客户端实例,使用 node-ssh
库连接 SSH 服务器。以上代码将连接到远程 SSH 服务器,执行 ls -lh
命令,并输出其响应。
本文介绍了如何使用 Node.js 和第三方库连接到随机 SSH 服务器。我们生成了随机 SSH 密钥对,并使用 ssh2
和 node-ssh
库连接到 SSH 服务器并执行命令。这确保了安全连接,以便在 web 应用程序中执行文件传输和远程命令。