VPS开荒指南

请注意,本文编写于 748 天前,最后修改于 194 天前,其中某些信息可能已经过时。

1 系统环境

从哪个发行版入手这里我们不多做讨论,这里我们选择Ubuntu 14.04 LTS.
优点是软件比较新,用的人多,任何问题google一下马上就有答案。本教程客户机部分适用于 LinuxMac

1.1 创建用户

首先通过 VPS 的web 管理工具 root 登录,然后创建一个用户组 admin

 #更新下软件包
 sudo apt-get update
 sudo apt-get upgrade
 #添加用户
 addgroup admin

然后,添加一个新用户 username

 useradd -d /home/username -s /bin/bash -m username 

上面命令中,参数d指定用户的主目录,参数s指定用户的shell,参数m表示如果该目录不存在,则创建该目录。

接着,设置新用户的密码。

 passwd username

将新用户(username)添加到用户组(admin)。

 usermod -a -G admin username

接着,为新用户设定sudo权限。

 visudo 

visudo命令会打开sudo设置文件/etc/sudoers,找到下面这一行。

 root       ALL=(ALL:ALL) ALL

在这一行的下面,再添加一行。

 root        ALL=(ALL:ALL) ALL
 username    ALL=(ALL) NOPASSWD: ALL

上面的NOPASSWD表示,切换sudo的时候,不需要输入密码,我喜欢这样比较省事。如果出于安全考虑,也可以强制要求输入密码。

然后,先退出root用户的登录,再用新用户的身份登录,检查到这一步为止,是否一切正常。

2 SSH

SSH有两种验证方式,出于安全考虑我们选择基于密钥的验证方式。思路就是在本地生成一对 RSA加密的密钥,把公钥上传给服务器用于认证访问的安全性,这样的好处是可以实现多用户不同权限访问。

2.1 检查客户端(本地)密钥设置

先检查本地.ssh文件夹防止新生成的密钥覆盖原先密钥造成密钥丢失。

 cd ~/.ssh

如果出现如下提示,则直接跳到第三步

No such file or directory

2.2 备份和移除原来的ssh key设置

 ls 
 config  id_rsa  id_rsa.pub  known_hosts//可能有所不同
 mkdir key_backup
 cp id_rsa* key_backup
 rm id_rsa* 

2.3 生成新的SSH Key:

 ssh-keygen -t rsa -C "邮件地址@youremail.com"
 Generating public/private rsa key pair.
 Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa)://这里回车

然后系统会要求你输入加密串 Passphrase .

 Enter passphrase (empty for no passphrase):<输入加密串>//也可以直接回车
 Enter same passphrase again:<再次输入加密串>//同上

看到下图就说明你成功了:

你会看到
你会看到

2.4 上传公钥

现在,我们已经在 ~/.ssh/ 目录下创建了两个文件:id_rsa(私钥)id_rsa.pub(公钥)。公钥放置在我们管理的服务器上,私钥是我们连接服务器的关键,如果有必要,需要在其他地方做一个备份,如果开发机器损坏或丢失,而服务器又无法连接的话,会造成巨大的损失和时间浪费。当然,一般云服务器会提供应急的 web 管理界面,如果出现刚才讲述的情形,我们重新创建一份私钥和公钥,并且替换服务器上的公钥即可。

现在,我们在服务器上创建一个部署项目的账号,sunyang :

 sudo useradd sunyang
 sudo passwd  sunyang
 Enter  new UNIX password:
 Retype new UNIX password:
 su sunyang

现在,我们把公钥传递到服务器上,在本机新开一个终端运行以下命令:

cat ~/.ssh/id_rsa.pub
ssh USER@HOST "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

authorized_keys 是公钥在服务器上的新名字,这个名字可以改掉。

为了避免每次登陆服务器都输入密码(也是防止密码被暴力破解),我们配置下服务器的 sshd。这个文件通常在 /etc/ssh/sshd_config:

下面这几项请确保和本文一致。(如果前面有#则去掉)

 AuthorizedKeysFile     .ssh/authorized_keys [1]  
 PermitEmptyPasswords                     no [2] 
 PermitRootLogin                          no [3] 
 PasswordAuthentication                   no [4]
  • [1] 这是一种适合多用户的配置,比如,多个开发者登陆服务器,sshd 会校验每个登陆账户下的 .ssh/authorized_keys
  • [2] 禁止空密码访问,这是默认的
  • [3] 禁止 root 访问,当我们开通服务器时,这个选项默认是 yes,这样我们可以使用 root 登陆。当设置完 ssh 后,建议第一时间关闭它。
  • [4] 不使用密码校验,这是 ssh 会自动读取、开发机器上的私钥校验,如果成功匹配,则自动登陆服务器。

设置完后,重启 sshd 服务:

 sudo service ssh restart

不要立刻退出当前的 shell,新开一个终端窗口进行登陆测试。

2.5 加强型(可选)

在配置文件中,将SSH的默认端口22改掉,可以改成从1025到65536之间的任意一个整数(这里假定为9527)。

 Port 9527

接着,在配置文件的末尾,指定允许登陆的用户。

 AllowUser sunyang username1 username2 #不同用户用空格隔开

设置完后,重启 sshd 服务:

 sudo service ssh restart

不要立刻退出当前的 shell,新开一个终端窗口进行登陆测试。

 ssh sunyang@hostip -p 9527
...

在客户机(本机)中修改.ssh中的config(如果没有则创建)

 Host sunyang-VM
 HostName ip
 User sunyang
 Port 9527

新开一个终端测试

 ssh sunyang-VM

3 ZSH

3.1 安装 ZSH

运行以下命令

 sudo apt-get install zsh
 ##安装oh-my-zsh插件
 cd ~/.
 ##自动安装脚本
 wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O- | sh

耐心等一会 终端就变成彩色的了

zsh
zsh

设置当前用户使用 zsh

chsh -s /bin/zsh

3.2 配置 ZSH

zsh 的配置主要集中在用户当前目录的.zshrc里,用 vim 或你喜欢的其他编辑器打开.zshrc,在最下面会发现这么一行字:

 # Customize to your needs…

可以在此处定义自己的环境变量和别名,当然,oh my zsh 在安装时已经自动读取当前的环境变量并进行了设置,你可以继续追加其他环境变量。

接下来进行别名的设置,我自己的部分配置如下:

 alias cls='clear'
 alias ll='ls -l'
 alias la='ls -a'
 alias vi='vim'
 alias javac="javac -J-Dfile.encoding=utf8"
 alias grep="grep --color=auto"
 alias -s py=vi       # 在命令行直接输入 python 文件,会用 vim 中打开,以下类似
 alias -s js=vi
 alias -s c=vi
 alias -s java=vi
 alias -s txt=vi
 alias -s gz='tar -xzvf'
 alias -s tgz='tar -xzvf'
 alias -s zip='unzip'
 alias -s bz2='tar -xjvf'

zsh 的牛粪之处在于不仅可以设置通用别名,还能针对文件类型设置对应的打开程序,比如:

alias -s py=vi,意思就是你在命令行输入 hello.pyzsh会为你自动打开 vi 并读取hello.pyalias -s gz='tar -xzvf',表示自动解压后缀为 gz `的压缩包。

总之,只有想不到,木有做不到,吓尿了吧。

设置完环境变量和别名之后,基本上就可以用了,如果你是个主题控,还可以玩玩 zsh 的主题。在 .zshrc 里找到ZSH_THEME,就可以设置主题了,默认主题是:

ZSH_THEME=”robbyrussell”

你可以在这里找到你喜欢的其他主题。

3.3 插件

oh my zsh 项目提供了完善的插件体系,相关的文件在~/.oh-my-zsh/plugins目录下,默认提供了100多种,大家可以根据自己的实际学习和工作环境采用,想了解每个插件的功能,只要打开相关目录下的 zsh 文件看一下就知道了。插件也是在.zshrc里配置,找到plugins关键字,你就可以加载自己的插件了,系统默认加载 git ,你可以在后面追加内容,如下:

plugins=(git ruby rails)

就开启了git rubyrails 三个插件

更多插件请进入 ~/.oh-my-zsh/plugins文件夹探索,每个人的需求不一样,每个插件试试总能找到惊喜。

也可以在官方 WIKI 的 Plugins Overview 里面有一些比较神奇的插件,比如敲两下esc 它会 给你自动加上 sudosudo 插件,让复制显示进度条的cp插件,解压用的 extract 插件(有没有觉得 在命令行下敲一大堆选项才能解压有点奇怪?我也觉得),vi粉的vi-mode等等…

新 插件的安装方法 以 autojump为例

  • 1,下载 autojump 的最新版本,比如:

    git clone git://github.com/joelthelion/autojump.git
  • 2,解压缩后进入目录,执行

    ./install.py
  • 3,然后把以下代码加入.zshrc

    [[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh
  • 4,最后在.zshrc中启用插件

    plugins=(git ruby rails autojump)

# 4 完成

至此,一台 VPS 的开荒就完成了,Enjoy it !

Comments

添加新评论