Node 如何在终端自动输入密码 ,实现免密码运行 SSH SCP ?
发布于 1个月前 作者 friskfly 220 次浏览 来自 问答

我的程序比如 SSH SCP,我用spawn去运行程序 ,需要调用终端的密码输入,这时是不走STDIN的,我该怎么去模拟输入密码?

4 回复

终端下好像没法直接指定password,只能用ssh密钥,楼主可以安装一些工具,比如sshpass,然后调用sshpass:

sshpass -p PASSWORD ssh -p 22 USER@HOST
sshpass -p PASSWORD scp -P 22 USER@HOST

做证书登录比较安全

1。进入服务器~目录建立.ssh目录:

ssh [email protected]
cd ~
mkdir .ssh
exit

2。回到本机,进行~目录生成密钥对

ssh-keygen -t rsa

#连按3个回车在 .ssh 里面生成 id_rsa 密钥和 id_rsa.pub

3。复制公钥到服务器

cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'

#输出本地的公钥内容,然后桥接到 ssh server 上面的 cat 命令,它会把接收到的内容作为新行放到 .ssh/authorized_keys 文件中

4。现在退出,再登录 [email protected] 就不需要输入密码了。原理上基本就是 ssh 会将两端的~目录下面的密钥和公钥进行配对,成功证明是本人。相比每次输入密码,除了省事外也更安全。

@klesh 我的目标服务器是台路由器,不知道为什么证书不起作用,所以没办法用这种方法免密码输入。 @crystaldust 的方案还不错,已经用上了,谢谢。

@friskfly 不客气,happy it helps

回到顶部