设置wetty不需要账号登录便可进行命令行操作
来源:互联网 发布:软件任务单模版 编辑:程序博客网 时间:2024/05/29 13:50
前一篇随笔我们将了Linux怎么安装部署Wetty服务,但是我们看到,在浏览器中输入http://127.0.0.1:3000进行访问的时候,还需要我们输入账号密码进行认证(如下图第一行所示)。
但在某些应用场景下,我们不需要用户输入账号密码进行认证,而且用户也不一定知道账号密码。我们希望用户打开即可直接进行命令操作。
在命令行终端中输入node app.js会如下提示,其中列出了启动wetty服务的所有选项说明。
从上图的这些选项中看到wetty是通过ssh来进行终端操作的,而其中的--sshauth用于指定ssh的认证模式,其默认为password,表示通过账号密码方式进行认证。关于ssh和ssh的认证模式我们可以参考下面几个文档。
(1)阮一峰的博文:SSH原理与运用(一):远程登录;
(2)https://en.wikipedia.org/wiki/Secure_Shell
(3)Linux / Unix Command: ssh
(4)Linux / Unix Command: ssh_config
Ssh的认证方式有很四种:hostbased、publickey、keyboard-interactive、password。其中password即我们上面说的账号密码认证方式;publickey是RSA公钥认证方式;其它两个我们暂时不关心。
Wetty默认采用的是password认证方式,我们可以通过--sshauth选项指定为publickey认证方式即可。关于ssh公钥的认证机制是:
用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
那么我们需要先打开一个命令行终端,然后输入
$ ssh-keygen
来生成我们的公钥和私钥。
该命令生成的公钥和密钥默认都保存在~/.ssh目录下,
其中id_rsa文件中保存的是私钥,id_rsa.pub文件中保存的是公钥。
上面ssh公钥认证机制提供我们需要讲公钥保存到远程机器中,保存在登录后的用户主目录的~/.ssh/authorized_keys文件中。公钥就是一段字符串,只要把它追加在authorized_keys文件的末尾就行了。而此时我们的远程机器即是本地机器,于是我们只需要将~/.ssh/id_rsa.pub复制一份并命名为authorized_keys即可。
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
然后我们切换到wetty目录下,启动wetty服务,
$ node app.js -p 3000 --sshauth=publickey
然后在浏览器中输入http://127.0.0.1:3000/,可以看到此时不需要输入账号密码即可直接操作,如下图所示,
如果我们嫌每次启动的时候还要指定--sshauth选项太麻烦的话,我们可以直接修改app.js文件中源代码。打开app.js文件,我们可以看到其在第45行指定的sshauth的默认认证方式为password,我们只需要将其修改为publickey即可。
(done)
- 设置wetty不需要账号登录便可进行命令行操作
- openfire设置一个账号同时登录并可同时接收消息
- MySQL数据库设置远程异地可访问账号&&异地登录方法
- phpmyadmin不需要密码登录的设置方法
- 设置登录越狱手机不需要输入密码
- 设置登录窗体并验证账号密码
- 重新设置oracle登录账号和密码
- GitHub退出登录账号操作步骤
- 仿QQ登录(账号列表并可编辑)
- Jenkins -- 设置域账号登录错误导致无法登录
- 设置phpMyAdmin可管理多个数据库服务器、自动登录等操作
- SQL Server Express命令行设置混合登录
- 使用Jmeter进行登录操作
- C++(不需要MFC库,不需要第三方库)对文件进行操作的几种方法
- 如何设置Windows 7使用域账号自动登录
- 设置路由器为多账号登录的办法
- 设置宿舍路由器为多账号登录的方法
- VisualSVN Server设置AD域账号自动验证登录
- 买二手楼要擦亮双眼——程序猿买二手房必看案例
- Java基础:this关键字、super关键字
- APK反编译
- 【LeetCode从零单刷】Move Zeroes
- android之4.0的系统主题style修改android:Theme.Holo.Light
- 设置wetty不需要账号登录便可进行命令行操作
- iOS--封装网络请求 ——实例
- UIButton大总结
- JAVA设计模式之单例模式
- js模块化历程
- 深入PHP购物车模块功能分析(函数讲解,附源码)
- 按键精灵---- 手机按键利用插件读取文本
- Intent使用总结
- Transaction(事务)浅谈