bash - ssh-keygen 期望在 1 个命令行中,没有密码
问题描述
我正在尝试使用一个命令行来执行 ssh-keygen 并在没有进一步用户输入的情况下生成密钥(无密码)
我希望这已经足够了
expect -d -c "spawn ssh-keygen; expect -re {.*: } { send '\n' }; expect -re {.*: } { send '\n' }; expect -re {.*: } { send '\n' }"
然而,在最后一步之后,它只是退出。
尝试多一层
expect -d -c "spawn ssh-keygen; expect -re {.*: } { send '\n' }; expect -re {.*: } { send '\n' }; expect -re {.*: } { send '\n' }; expect -re {.*: } { send '\n' }"
它抱怨Saving key "'" failed: passphrase is too short (minimum five characters)
为什么期望 ssh-keygen 命令在第一次尝试时退出而没有完成?
为什么 ssh-keygen 在他应该收到 \n 时抱怨他收到了“'”?
解决方案
你不需要expect
这个。只需使用该-N
选项指定一个空密码。
ssh-keygen -f foo -N ''
推荐阅读
- css - scss 文件在本地工作但不能在部署中工作,在 chrome 中工作,而不是在 IE 中
- powershell - 将文件作为 PDF 批量打印到新文件夹
- ios - Swift:仅在一个子视图控制器上隐藏状态栏
- python - 为什么使用并发线程时数据重复
- excel - 如何在 DAX 中应用带有两个过滤器的计算函数来获取运行总和
- python - 如何在 Python 中使用滑动重叠窗口消除 For 循环?
- webserver - 如何浏览网络服务器上的文件?
- gatsby - 删除另一个插件拥有的类型的 gatsby 节点时出错
- scala - Scala中类型参数的模式匹配
- mysql - 两个联合的左连接结果