
1. 安装ssh2模块
在终端中运行以下命令:
```
npm install ssh2
```
2. 导入ssh2模块
在Express应用程序中导入ssh2模块:
```javascript
const ssh2 = require('ssh2')
```
3. 创建SSH连接
使用ssh2模块创建SSH连接,并设置远程主机和端口:
```javascript
const conn = new ssh2.Client()
conn.on('ready', function() {
console.log('SSH连接已建立')
// 在此处添加转发代码
}).connect({
host: '远程主机',
port: 22,
username: '用户名',
password: '密码'
})
```
4. 添加转发
在SSH连接成功后,使用conn.forwardOut()方法添加转发:
```javascript
conn.forwardOut('本地主机', 0, '远程主机', 远程端口, function(err, stream) {
if (err) throw err
// 在此处处理流
})
```
其中,本地主机和本地端口可以是任意值,远程主机和远程端口是需要转发的目标主机和端口。
5. 处理流
在添加转发后,可以使用stream对象处理数据流。例如,将流传递给Express应用程序:
```javascript
app.get('/ssh', function(req, res) {
conn.forwardOut('localhost', 0, '远程主机', 远程端口, function(err, stream) {
if (err) throw err
stream.pipe(res)
})
})
```
这将创建一个路由,将来自SSH转发的流传递给Express应用程序的响应。
由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以必须要让github仓库认证你SSH key,在此之前,必须要生成SSH key。
第1步:创建SSH Key。在windows下查看[c盘->用户->自己的用户名->.ssh下是否有id_rsa、id_rsa.pub文件,如果没有需要手动生成。
在开始菜单中打开git下的git bash(当然,在其他目录下打开git bash也是一样的):
然后执行:
cd ~/.ssh
如果能进入到.ssh文件目录下 ,则证明,之前生成过.ssh秘钥,可以直接使用里面的秘钥。
如果不能进入到.ssh文件目录下,则:
检测下自己之前有没有配置:git config user.name和git config user.email(直接分别输入这两个命令)
一、如果之前没有配置过
1.配置
git config –global user.name ‘xxxxx’
git config –global user.email ‘ xxx@xx.xxx ’
2.生成密钥
ssh-keygen -t rsa -C ‘上面的邮箱’
接着按3个回车 则:
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Mr.Yang/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Mr.Yang/.ssh/id_rsa.
Your public key has been saved in /c/Users/Mr.Yang/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:zA6wNJrFB6NcqS6eBog/AHlzQuvFjYpG759Yhh1lWGI xxxxxx@xxxxx.xxx (上面自己的邮箱)
The key's randomart image is:
+---[RSA 2048]----+
|+E . |
| ..+oo+ |
| oo+ +.o |
|o. ===+o |
|==+*... S|
|B.+.o .o |
|++o. + .|
| +o.+ . |
|. o.o |
+----[SHA256]-----+
最后在.ssh目录下得到了两个文件:id_rsa(私有秘钥)和id_rsa.pub(公有密钥)
如果想登陆远端,则需要将rsa.pub里的秘钥添加到远端,打开setting->SSH keys,点击右上角 New SSH key,把生成好的公钥id_rsa.pub放进 key输入框中,再为当前的key起一个title来区分每个key,title名称随便命名。
SSH密钥生成结束后,你可以在SSH目录下看到私钥id_rsa和公钥id_rsa.pub这两个文件,不要把私钥文件id_rsa的信息透露给任何人。我们可以通过文本编辑器或cat命令来查看id_rsa.pub公钥信息。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)