新拿到一个服务器后,往往只有root用户,登录的时候使用root密码进行登录,这样往往不太安全,下面是对一台新服务器的设置:
添加帐号
# 当前是root用户
$ useradd bob
$ mkdir -p /home/bob
$ chown -R bob.bob /home/bob
$ gpasswd -a bob sudo // 给用户有 sudo 的权限
$ passwd bob 设置一个密码,这个是作为当用户想要 sudo 去执行 root 执行的时候使用的
# 有时候会发现shell里面退格键,空格键都不能使用,会出现乱码,可以使用下面命令来修改bash
$ sudo vi /etc/passwd
# 打开vi后,编辑 bob 用户那一行,将 /bin/sh 改为 /bin/bash
# 或者创建用户时可以使用下面命令:
$ useradd -d /home/bob bob -m -s /bin/bash
免密码登录(客户端配置)
本地生成ssh keypair,使用ssh-keygen
命令生成即可.
将生成的公钥id_rsa.pub
上传至服务器
ssh-copy-id -i .ssh/id_rsa.pub bob@server-ip
# 或者使用scp将id_rsa.pub上传到服务器,然后在 .ssh/ 下创建 authorized_keys 文件
# 然后将 id_rsa.pub 内容拷贝到 authorized_keys 文件中
可以配置ssh客户端,方便连接服务器,当然也可以不配置.
vim ~/.ssh/config
Host server-name
Hostname server-ip
User bob
Port 12345
IdentityFile ~/.ssh/id_rsa
配置完以后,ssh连接服务器时可以这样操作:
ssh server-name
如果不配置的话,连接服务器需要这样:
ssh bob@server-ip
服务器配置
$ vi /etc/ssh/sshd_config
PasswordAuthentication no // 禁止使用基于口令认证的方式登陆
PubkeyAuthentication yes // 允许使用基于密钥认证的方式登陆
PermitRootLogin no // 不允许 root 远程登录
如果当前服务器是vps的话,即使不允许root远程登录,但是也可以登录vps的管理系统,选择shell工具进入系统中.
一般vps管理系统会自带shell工具,可以直接使用root用户登录系统,所以不用担心禁用口令认证登录后会导致服务器登录不了.