美文网首页程序员Ruby、Rails知识
打造一个支持 ssh 访问的个人网站

打造一个支持 ssh 访问的个人网站

作者: 编程青年 | 来源:发表于2016-04-03 09:40 被阅读523次

    愚人节看到了 coding.net 推出的[命令行界面]
    (https://segmentfault.com/a/1190000004834909)

    command line interface

    是不是非常酷,于是我打算依葫芦画瓢,让我的个人网站不但可以被浏览器访问,也可以用 ssh 链接的方式来访问。

    先看效果图:

    preview

    下面是实现步骤(当前只给出最小实现说明):

    准备服务器与域名

    由于 HTTPS 的原因,我已经把自己的博客转到了独立 VPS 上。然后到托管域名的管理界面指定一个 A Record 来专门用于 ssh 登录(可选), 这里我选择的是 cli.songofcode.com

    A Record

    建立访客用户

    在服务器上创建一个访客用户,这里我使用的是 visitor,你可以选用任何名字,比如 guest

    创建时先随便指定一个密码,创建好之后,先试试在本机用密码 ssh 登录服务器,确保可以登录后,使用 passwd -d visitor 来删除这个用户的密码,此时再次尝试登录会发现服务器依然询问用户密码,这时需要修改 /etc/ssh/sshd_config 文件,修改 PermitEmptyPasswordsyes 以及 UsePAMno。然后再尝试 ssh visitor@cli.songofcode.com,应该就可以直接无密码登录了。

    好了,接下来就是定义 api 了,出于演示目的,我这里只打算启用 abouthelpposts 这几个命令,另外出于安全考虑,虽然这不是一个 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 登录本站』的字样了!

    相关文章

      网友评论

        本文标题:打造一个支持 ssh 访问的个人网站

        本文链接:https://www.haomeiwen.com/subject/rgjylttx.html