2. Linux服务器的初步配置¶
root
用户登录,并更新系统源与包:
$ ssh root@47.98.109.41
更新系统源升级包:
$ apt-get update && apt-get upgrade
2.1. 创建用户组与用户¶
首先,添加一个用户组这里假定为 admin
用户组:
$ addgroup admin
然后,添加一个新用户假定为 blog
参数 d
指定用户的主目录,参数 s
指定用户的 shell
:
$ useradd -d /home/blog -s /bin/bash -m blog
参数 m
表示如果该目录不存在,则创建该目录,接着设置新用户的密码:
$ passwd blog
将新用户 blog
添加到用户组 admin
:
$ usermod -a -G admin blog
接着,为新用户设定 sudo
权限:
$ visudo
如果提示找不到 visudo
,需要安装一下 sudo
这个程序。Debian
系统可以执行下面的命令:
$ apt-get install sudo
visudo
命令会打开 sudo
设置文件 /etc/sudoers
,找到下面这一行:
root ALL=(ALL:ALL) ALL
在这一行的下面,再添加一行:
root ALL=(ALL:ALL) ALL
blog ALL=(ALL) NOPASSWD: ALL
上面的 NOPASSWD
表示,切换 sudo
的时候,不需要输入密码,我喜欢这样比较省事。
然后,先退出 root
用户的登录,再用新用户的身份登录,检查到这一步为止,是否一切正常:
$ exit
$ ssh bill@128.199.209.242
第三步:SSH设置免密钥登陆,增加安全性。
首先,确定本机有SSH公钥一般是文件 ~/.ssh/id_rsa.pub,
如果没有的话,使用 ssh-keygen
命令生成一个。
在本机上另开一个 shell
窗口,将本机的公钥拷贝到服务器的 authorized_keys 文件:
$ cat ~/.ssh/id_rsa.pub | ssh bill@128.199.209.242 'mkdir -p .ssh && cat - >> ~/.ssh/authorized_keys'
# 或者在服务器端,运行下面命令:
$ echo "ssh-rsa [your public key]" > ~/.ssh/authorized_keys
然后,进入服务器,编辑SSH配置文件 /etc/ssh/sshd_config:
$ sudo cp /etc/ssh/sshd_config ~
$ sudo nano /etc/ssh/sshd_config
然后,检查几个设置是否设成下面这样,确保去除前面的#号:
Protocol 2
PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
UseDNS no
上面主要是禁止 root
用户登录,以及禁止用密码方式登录。
接着,在配置文件的末尾,指定允许登陆的用户:
AllowUsers bill
保存后,退出文件编辑。
接着,改变 authorized_keys
文件的权限:
$ sudo chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/
然后,重启SSHD:
$ sudo service ssh restart
或者:
$ sudo /etc/init.d/ssh restart
下面的一步是可选的。在本机 ~/.ssh
文件夹下创建 config
文件,内容如下:
Host blog
HostName 47.98.109.41
User blog
Port 22
最后,在本机另开一个 shell
窗口,测试SSH能否顺利登录:
$ ssh blog