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

愚人节看到了 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 登录本站』的字样了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,676评论 9 468
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,993评论 6 342
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,256评论 2 33
  • 做了一个很长很长的梦,像看了很长很长的电影…… 一切,终会结束,所有你给的希望,终于随时光慢慢淡忘。 所有不期而遇...
    从未出现你阅读 480评论 4 4