脚本如下
useradd -m -s /bin/bash new_user
passwd new_user
# 创建 .ssh 目录并设置权限
mkdir -p /home/new_user/.ssh
chmod 700 /home/new_user/.ssh
# 添加公钥到 authorized_keys 文件
echo 'ssh-rsa <your_public_key> <your_email>' > /home/new_user/.ssh/authorized_keys
# 设置该文件权限
chmod 600 /home/new_user/.ssh/authorized_keys
# 修改文件和目录的所有者
chown -R new_user:new_user /home/new_user/.ssh
下面一个个讲解
1. 添加新用户
打开终端,使用 useradd
命令添加新用户。假设新用户名为 newuser
,执行以下命令:
sudo useradd -m -s /bin/bash newuser
-m
选项表示创建用户的主目录。-s /bin/bash
选项指定用户的默认 shell 为bash
。
2. 设置用户密码(可选)
如果你希望新用户有密码,可以使用 passwd
命令为其设置密码:
sudo passwd newuser
按照提示输入并确认新用户的密码。
3. 创建 .ssh
目录并设置权限
为新用户创建 .ssh
目录,并设置正确的权限:
sudo mkdir -p /home/newuser/.ssh
sudo chmod 700 /home/newuser/.ssh
mkdir -p
选项用于创建目录,如果目录已经存在则不会报错。chmod 700
确保只有用户本身可以访问该目录。
4. 添加公钥到 authorized_keys
文件
将新用户的 SSH 公钥添加到 /home/newuser/.ssh/authorized_keys
文件中。假设公钥内容存储在一个文件中,例如 newuser.pub
,可以使用以下命令:
sudo sh -c 'cat /path/to/newuser.pub >> /home/newuser/.ssh/authorized_keys'
然后设置 authorized_keys
文件的权限:
sudo chmod 600 /home/newuser/.ssh/authorized_keys
chmod 600
确保只有用户本身可以读写该文件。
5. 修改文件和目录的所有者
确保 .ssh
目录和 authorized_keys
文件的所有者是新用户:
sudo chown -R newuser:newuser /home/newuser/.ssh
-R
选项表示递归修改目录及其子文件的所有者。
6. 配置 SSH 服务(如果需要)
确保 SSH 服务允许使用公钥认证。打开 /etc/ssh/sshd_config
文件,检查以下配置项:
PubkeyAuthentication yes
PasswordAuthentication no # 如果只允许公钥认证
修改后,重启 SSH 服务使配置生效:
sudo systemctl restart sshd
7. 使用私钥登录
在客户端,使用新用户的私钥文件登录到服务器:
ssh -i /path/to/newuser_private_key newuser@server_ip
-i
选项指定私钥文件的路径。server_ip
是服务器的 IP 地址或域名。
通过以上步骤,新用户就可以使用 SSH 私钥验证登录到服务器了。