愚人节看到了 coding.net 推出的[命令行界面]
(https://segmentfault.com/a/1190000004834909)
是不是非常酷,于是我打算依葫芦画瓢,让我的个人网站不但可以被浏览器访问,也可以用 ssh 链接的方式来访问。
先看效果图:
preview下面是实现步骤(当前只给出最小实现说明):
准备服务器与域名
由于 HTTPS 的原因,我已经把自己的博客转到了独立 VPS 上。然后到托管域名的管理界面指定一个 A Record
来专门用于 ssh 登录(可选), 这里我选择的是 cli.songofcode.com
建立访客用户
在服务器上创建一个访客用户,这里我使用的是 visitor
,你可以选用任何名字,比如 guest
。
创建时先随便指定一个密码,创建好之后,先试试在本机用密码 ssh 登录服务器,确保可以登录后,使用 passwd -d visitor
来删除这个用户的密码,此时再次尝试登录会发现服务器依然询问用户密码,这时需要修改 /etc/ssh/sshd_config
文件,修改 PermitEmptyPasswords
为 yes
以及 UsePAM
为 no
。然后再尝试 ssh visitor@cli.songofcode.com
,应该就可以直接无密码登录了。
好了,接下来就是定义 api 了,出于演示目的,我这里只打算启用 about
,help
,posts
这几个命令,另外出于安全考虑,虽然这不是一个 root 用户,但是还是要禁用其他所有的 shell 命令,这里我使用 rbash,来限制 bash 的使用,配置用户的 bashrc
如下:
set -r
alias help='echo "available commands: help,about,posts" '
alias about='echo "this is my personal website" '
alias posts='echo "please visit http://www.jianshu.com/users/yLzRq4/latest_articles" '
可以看到, 使用 set -r
来启用 restricted
模式,另外设置了三个 alias 来作为 api 供调用。
做完这些,你就可以在 web 版的网页上标注上,『欢迎使用 ssh 登录本站』的字样了!
网友评论