去年买的一年期域名都快过期了,一直也没怎么好好利用。最近在 DigitalOcean 上开了个VPS,打算再重新整理一下。这次选的系统是 ubuntu 16
,因为听说对 linux 不熟悉的人,用 ubuntu
会是最好的选择。下面记录一下折腾的全过程。
查看系统版本
lsb_release -a
查询某服务的运行状态
systemctl status <service_name>
ssh
在 DigitalOcean 页面上创建好 Droplet (水滴, 很形象的一个词) 之后,DigitalOcean 会往邮箱里发送初始的密码。在本地可以通过 ssh root@your.ip.address.here
的方式连接到远程主机,连上去之后会要求输入初始密码,并会要求更改初始密码。之后可以配置 ssh key 来快速连接,方式如下:
-
在本机生成一对 ssh 公私钥:
ssh-keygen -t rsa
-
如果没有修改生成的文件路径和文件名,应该是在本机当前用户目录(即
~
)的隐藏文件夹.ssh
之内,公钥是id_rsa.pub
, 私钥是id_rsa
。接下来不管用哪种方式把公钥写入到远程主机~/.ssh/
目录下的authorized_keys
文件内(如果文件不存在可以自己手动创建)。这个文件是 ssh 登陆用来验证已授权秘钥的,如果以后还要加其它的连接访问设备,也可以同样的方式写入更多公钥。例如:cat ~/.ssh/id_rsa.pub | ssh root@[your.ip.address.here] "cat >> ~/.ssh/authorized_keys"
-
在此之后,可以已经可以通过
ssh root@[your.ip.address.here]
的命令免密登陆远程主机了。但是每次都要输入用户名和 IP 地址不太方便,因此我们在本机创建修改~/.ssh/config
文件用以配置 ssh 登录的信息,给远程主机起一个便于识别的别名,方便日后登录:bash ~/.ssh/config Host my-droplet HostName [your.ip.address.here] User root IdentityFile ~/.ssh/id_rsa
大功告成!之后再登录只需要简单的 ssh my-droplet
就可以了!
git
配置 git 代码访问权限这个就不仔细说了。在远程主机上用 ssh-keygen
生成公私钥对,然后把公钥加到自己 git 账号下。如果有多个不同的 git(gitlab, github等),可以通过修改 ~/.ssh/config
文件告诉 ssh 命令,对不同的 git 使用不同的帐号和私钥。例如:
Host github.com
HostName github.com
User aprilandjan
IdentityFile ~/.ssh/id_rsa_github
Host gitlab.my-corp.com
HostName gitlab.my-corp.com
User merlin.ye
IdentityFile ~/.ssh/id_rsa_my-corp
nginx
安装过程基本参照 https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04 来操作。
mongo
安装过程基本参照 https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-16-04 来设置,在此不再赘述。