几行命令了解一下远程服务器创建用户并无密登录
升级包管理系统
首先使用如下命令升级包管理系统:
sudo apt-get update
sudo apt-get upgrade
创建用户并配置账号权限
为了服务器安全,我们应该避免直接使用 root 用户去登录;而是创建一个新用户,并使用这个用户账号去登录远程服务器:
如果使用 centos :
useradd oli # add new user
passwd oli # password
usermod -g root oli # set user to root group
# /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
oli ALL=(ALL) ALL
使用 Ubuntu 创建用户非常简单:
使用 adduser 命令即可:
# 添加帐号
$ adduser oli # 自动将该用户 oli 加入群组 oli,生成 /home/oli
# Adding user 'oli'
# Adding new group 'oli'
# Adding new user 'oli' with group 'oli'
# Creating home directory '/home/oli'
# Copying files from '/etc/skel'
# 填写用户个性化信息
# Enter the new value, or press ENTER for the default
# 可选
然后对用户进行授权:
# 用户组里
$ gpasswd -a oli sudo # 将 oli 加入到 群组 sudo
# 从而可以部分拥有 root 的权限 相对比较高的权限 可以通过输入密码执行较高权限的命令
# Adding user oliver to group sudo
# 修改配置文件
$ sudo visudo
# 在 User privilege specification 的 root 用户设定的行下 新增一行 oli 的设定:
oli ALL=(ALL:ALL) ALL
# 分别对应:
# 对所有 sudo 生效;oli 可以任何用户执行命令;oli 可以任何的组来执行命令;该规则适用于所有命令
# 意思是只要提供密码就可以 sudo 执行任何 root 可以执行的命令
验证是否成功
新建一个终端会话,用新账号远程联机,不要关闭 root 窗口
如果失败可以马上返回 root 用户登录的窗口试着重启 ssh 服务:
service ssh restart
,这就是为什么需要暂时不要关闭 root 用户的登录界面
至此,新用户创建成功。
ssh 无密码登录
生成私钥和公钥,将公钥上传至服务器,每次登录自动进行**算法比较,如正确即可成功登录
(1) 客户端配置
$ ls ~/.ssh # 如果为空则没有创建过 ssh **,否则会有 id_rsa.pub id_rsa 两个文件
# 新建公钥和私钥
$ ssh-****** -t rsa -b 4096 -C "[email protected]" # 会生成 id_rsa 和 id_rsa.pub 两个文件
# 代理
$ eval "$(ssh-agent -s)"
# Agent pid ...
# 若执行ssh-add /path/to/xxx.pem是出现这个错误:Could not open a connection to your authentication agent,则先执行如下命令即可:
$ ssh-agent bash
# 文件加入
$ ssh-add ~/.ssh/id_rsa
(2) 服务端配置 ~/.ssh/authorized_keys
文件
首先执行一遍上面客户端的代码然后创建 authorized_keys:
# 将客户端的 id_rsa.pub 中的公钥信息复制到这个文件
$ vi ~/.ssh/authorized_keys
# 文件权限设置
$ sudo chmod 600 ~/.ssh/authorized_keys
# 重启 ssh 服务
$ sudo service ssh restart
至此,然后就可以通过 ssh 登录服务器而不需要密码了
欢迎关注我的订阅号:“JS菌”