本文仅作存档参考。本文以Ubuntu18.04为例,其他发行版仅需步骤基本一致。
新建用户
sudo adduser hanada
此时会要求输入用户密码以及用户个人信息等内容。根据引导输入即可。
添加公钥
sudo mkdir /home/hanada/.ssh
sudo touch /home/hanada/.ssh/authorized_keys
sudo chown -R hanada /home/hanada/.ssh
sudo echo "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBILJKpN3c75tFrl2NcRgOq36BFpMrxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" > /home/hanada/.ssh/authorized_keys
其中ecdsa-sha2-nistp256 AAAAE2V…xxx为公钥内容。
使用以下命令确认是否已经成功写入公钥
sudo cat /home/hanada/.ssh/authorized_keys
给公钥授予正确的权限
sudo chmod 700 /home/hanada/.ssh
sudo chmod 600 /home/hanada/.ssh/authorized_keys
添加权限
将用户添加到sudo组(如果需要授予该用户sudo命令,注意在RedHat系系统如CentOS没有这个组,建议使用wheel组)
sudo usermod -a -G sudo hanada
配置sudo命令无需输入密码(可选)
sudo vim /etc/sudoers
将
%sudo ALL=(ALL:ALL) ALL
修改为
%sudo ALL=(ALL) NOPASSWD:ALL
SSH连接测试
添加权限后需要确认是否配置正确,另建一个shell窗口SSH连接或者使用SSH客户端连接(使用公钥连接)
ssh hanada@{host_ip_or_domain} -i {private_key_dir}
如果本地用户已在用户目录下(Windows为C:/User/{Username}/.ssh)生成有名为id_rsa或者id_ecdsa之类的私钥,则无需带-i参数即可连接成功。
连接成功后输入sudo命令测试是否授权成功
sudo -i
使用该命令成功切换为root用户即说明授权已经成功。
[titie]关闭root的SSH远程登录和密码登录
sudo vim /etc/ssh/sshd_config
将
PermitRootLogin yes
修改为
PermitRootLogin no
将
PasswordAuthentication yes
修改为
PasswordAuthentication no
若没有发现这两项配置,可以查看一下是否被注释,如被注释可取消注释再改为no,如果确实不存在可以在末尾添加这两项并指定为no。
重启SSH服务
sudo service sshd restart
另外最近sudo被曝光具有重大漏洞,建议将安全补丁升至最新版本。