一、 新建用户

  1. 方法一: 使用adduser命令,一路enter(使用ssh连接可以不设置密码)

sudo adduser testuser
  1. 方法二:老版linux中可能没有adduser这个高级命令,使用useradd命令,并需要手动创建home

  • 创建用户

sudo useradd testuser
  • 设置用户使用的shell为/bin/bash(有时候默认会是sh)

sudo usermod -s /bin/bash testuser
  • 上述两句也可以合成为一句

sudo useradd -s /bin/bash testuser
  • 设置用户密码(可选)

sudo passwd testuser
  • 创建根目录

sudo mkdir /home/testuser
sudo chown testuser:testuser /home/testuser

二、设置免密码sudo权限

  1. 运行以下命令以编辑 /etc/sudoers 文件:

sudo visudo
  1. 找到形如以下的行:

username ALL=(ALL:ALL) NOPASSWD: ALL
  1. 加入自定义用户的设置,退出ctrl + X 保存

testuser ALL=(ALL:ALL) NOPASSWD: ALL
  1. 测试用户sudo权限,如果当前是root用户,可以简单切换身份验证

##切换到testuser
su testuser
##切换回root
sudo -i 

三、为用户添加ssh公钥访问

  1. 本地生成秘钥,如本机已有可跳过。输入以下命令,一路回车。默认在~/.ssh目录下生成id_rsa和id_rsa.pub两个文件。其中id_rsa是私钥,妥善保存到本机;id_rsa.pub是公钥,可以公布出去,比如放到远程服务器上

ssh-keygen -t rsa
  1. 依然是在服务器上操作,使用root用户或者切换到testuser用户进行操作

  • 在home下创建.ssh目录及authorized_keys文件

sudo -u testuser mkdir -p /home/testuser/.ssh
sudo -u testuser touch /home/testuser/.ssh/authorized_keys
  • 确保权限正确

sudo chmod 600 /home/testuser/.ssh/authorized_keys
sudo chown testuser:testuser /home/testuser/.ssh/authorized_keys
  • 用文本编辑器打开本地的id_rsa.pub(或者使用cat命令),直接复制粘贴。服务器打开authorized_keys文件(此处使用vim,也可以用nano),直接粘贴并退出保存。

#本机查看
cat ~/.ssh/id_rsa.pub
#服务器编辑authorized_keys
sudo vim /home/testuser/.ssh/authorized_keys
#复制粘贴保存
  1. 本机尝试ssh连接

ssh -i ~/.ssh/id_rsa testuser@YOUR_IP_ADDRESS

如果没有指定文件名 ,可以省略-i,默认就是使用 ~/.ssh/id_rsa,简化命令为:

ssh testuser@YOUR_IP_ADDRESS
  1. 进阶配置,可以在本机的~/.ssh目录下创建一个config文件(无后缀),编辑文件加入以下配置

Host server
HostName 192.168.0.1 
User testuser
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa

其中Host是你自定义为这个服务器取的名字;HostName是服务器ip地址;user是指定用户名;IdentityFile是使用的秘钥文件,默认就是 ~/.ssh/id_rsa,同样可以省略。

  1. 使用xshell、windTerm等可视化工具连接,一样输入用户名,手动选择秘钥即可。