从哪个发行版入手这里我们不多做讨论,这里我们选择Ubuntu 14.04 LTS
.
优点是软件比较新,用的人多,任何问题google
一下马上就有答案。本教程客户机部分适用于 Linux
和Mac
。
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
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.py
,zsh
会为你自动打开 vi
并读取hello.py
; alias -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
ruby
,rails
三个插件
更多插件请进入~/.oh-my-zsh/plugins
文件夹探索,每个人的需求不一样,每个插件试试总能找到惊喜。
也可以在官方 WIKI 的 Plugins Overview 里面有一些比较神奇的插件,比如敲两下esc
它会 给你自动加上 sudo
的 sudo 插件
,让复制显示进度条的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 !