介绍
SSH(Secure Shell)是一种加密网络协议,用于在不安全的网络上安全地传输数据。SSH Key 是 SSH 认证方式之一,其由公钥和私钥组成,用于加密和解密网络通信数据。在前端开发中,我们有时需要使用 SSH Key 进行服务器连接和认证,npm 包 sshkey 就是一款帮助我们处理 SSH Key 的包。
安装
使用 npm 命令进行安装:
npm install sshkey
使用方法
生成SSH Key
首先需要生成 SSH Key,可以使用 ssh-keygen 命令行工具生成,也可以使用 npm 包 sshkey 生成。
使用 sshkey 快速生成 SSH Key:
-- -------------------- ---- ------- ----- ------ - ------------------ ----- ------- - - -------- ---------------------- --------- --- ----------- ---- -- ----- ------ - -------------------------- --------- --------------------
执行后会输出生成的 SSH Key。
解析 SSH Key
sshkey 还可以将 SSH Key 的字符串表示形式解析成具体的密钥信息。
const SSHKey = require('sshkey'); const pub = `ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDzGcH/200+oyt8Dr+dq+5prhJ/W9abN5cFB8Jdp0qyLGCwAmJDHjLJW/QZg83M0x0xZIuzHJPgcBdoaqOHJyfojTvkzrhulQf4U6LLsUO4Ox6PL9XMycoS7M8Gy/E6TbcPE1InUGwb2U4zi6BWh4sUShjLXoI6pNnv8q3NvgNlwy/lbD+1BSwmVBfZlsw2IeHATXGOnviWf/qVNKvthDDH7ONUPtMTMfefYL/K5ZTr3jKijb0J+Nh5zo+FwoKTAFLmsyCpOvsdNN87eGI710ovku8BCvGgV7cKNxrAZlQfc25b81aZVDv5q5/p5dRHcvax/45LvCzzPWe+UTfSYzR1ABZ63VfZu1ufMxVHiEgpdLNhDhfXDy/dVyHYwqqd7rjCsDXrrKWUvcO6irikRu6OzcE4XctTfQ2T6TLP/H6Mt7SMyFbI8WzTT0ZBtpkaQxmnJX9Oi8O/skGy0q0neEh+B3ois8LztGKPZvPxl95x2Jf9XjYB1NlLoKOq3PPSQpNfJ6oIaZjikYuC4s1qm4sX6Tdg2fTj1YEJTaDmSbP/S66lQovlGSZfh/E7V+svGsuvDLD7mw/bOvBC/twzOywDLgm+8h7WDDREJQtq3+5d5OE5Y11hW0Jcft53w0DHgRnazf7VVIHR1ZuUnJbw== example@example.com`; const sshKey = new SSHKey(pub); console.log(sshKey);
读取 SSH Key 文件
sshkey 还可以通过读取 SSH Key 文件来获取密钥信息。比如,我们有一个 ssh_id_rsa.pub 文件:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDzGcH/200+oyt8Dr+dq+5prhJ/W9abN5cFB8Jdp0qyLGCwAmJDHjLJW/QZg83M0x0xZIuzHJPgcBdoaqOHJyfojTvkzrhulQf4U6LLsUO4Ox6PL9XMycoS7M8Gy/E6TbcPE1InUGwb2U4zi6BWh4sUShjLXoI6pNnv8q3NvgNlwy/lbD+1BSwmVBfZlsw2IeHATXGOnviWf/qVNKvthDDH7ONUPtMTMfefYL/K5ZTr3jKijb0J+Nh5zo+FwoKTAFLmsyCpOvsdNN87eGI710ovku8BCvGgV7cKNxrAZlQfc25b81aZVDv5q5/p5dRHcvax/45LvCzzPWe+UTfSYzR1ABZ63VfZu1ufMxVHiEgpdLNhDhfXDy/dVyHYwqqd7rjCsDXrrKWUvcO6irikRu6OzcE4XctTfQ2T6TLP/H6Mt7SMyFbI8WzTT0ZBtpkaQxmnJX9Oi8O/skGy0q0neEh+B3ois8LztGKPZvPxl95x2Jf9XjYB1NlLoKOq3PPSQpNfJ6oIaZjikYuC4s1qm4sX6Tdg2fTj1YEJTaDmSbP/S66lQovlGSZfh/E7V+svGsuvDLD7mw/bOvBC/twzOywDLgm+8h7WDDREJQtq3+5d5OE5Y11hW0Jcft53w0DHgRnazf7VVIHR1ZuUnJbw== example@example.com
则可以使用 sshkey 读取:
const SSHKey = require('sshkey'); const fs = require('fs'); const pub = fs.readFileSync('ssh_id_rsa.pub'); const sshKey = new SSHKey(pub); console.log(sshKey);
总结
sshkey 很好地封装了对 SSH Key 的处理操作,使用它可以方便地生成、解析和读取 SSH Key。在前端开发中,我们可以将 sshkey 用于服务器连接和认证等方面。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600670a78ccae46eb111f2e8