newuser
为例):,``,sudo adduser newuser,
`,,2. 为新用户生成SSH密钥对:,
`,sudo su newuser,sshkeygen,
`,按提示操作,可以选择默认路径和设置密码短语。,,3. 将公钥添加到authorized_keys文件中:,
`,cat ~/.ssh/id_rsa.pub | ssh 'localhost' "mkdir p ~/.ssh && cat >> ~/.ssh/authorized_keys",
`,,4. 修改新用户的SSH目录权限:,
`,chmod 700 ~/.ssh,chmod 600 ~/.ssh/authorized_keys,
`,,新用户
newuser`已经可以使用SSH密钥进行身份验证了。在Linux系统中,添加SSH用户并设置SSH key是一种常见的操作,主要用于安全地远程访问和管理服务器,下面是详细的步骤和解释:
创建新的SSH用户
1、打开终端
在Linux系统中,首先需要打开一个终端窗口。
2、创建新用户
使用useradd
命令来创建一个新用户,要创建一个名为newuser
的用户,可以使用以下命令:
```bash
sudo useradd newuser
```
这里使用sudo
是因为创建用户通常需要管理员权限。
3、为新用户设置密码
使用passwd
命令为用户设置密码:
```bash
sudo passwd newuser
```
系统会提示你输入并确认新用户的密码。
4、创建用户主目录
虽然useradd
命令默认会创建用户的家目录,但有时可能需要确保其存在或具有正确的权限,可以使用以下命令:
```bash
sudo mkdir /home/newuser
sudo chown newuser:newuser /home/newuser
```
5、创建用户登录的shell
你需要为新用户指定一个shell,如Bash,可以修改/etc/passwd
文件或者使用usermod
命令:
```bash
sudo usermod s /bin/bash newuser
```
生成SSH Key对
1、检查是否存在密钥文件
在用户的家目录下,检查.ssh
目录是否存在:
```bash
ls a /home/newuser/.ssh
```
如果不存在,需要创建它:
```bash
sudo mkdir /home/newuser/.ssh
```
2、生成SSH密钥对
使用sshkeygen
命令在用户家目录下生成新的SSH密钥对:
```bash
sudo u newuser sshkeygen t rsa
```
该命令会生成一个RSA类型的密钥对,包括私钥和公钥,私钥默认保存为~/.ssh/id_rsa
,公钥保存为~/.ssh/id_rsa.pub
。
期间,系统会询问保存私钥的文件路径及其密码(可选),通常可以直接按回车使用默认值。
配置SSH服务端
1、编辑SSH配置文件
使用文本编辑器打开SSH服务器配置文件/etc/ssh/sshd_config
:
```bash
sudo nano /etc/ssh/sshd_config
```
查找并确保以下行未被注释(去掉行首的#
):
```ini
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
```
这些设置允许使用公钥认证,并开启了密码认证作为备选。
2、重启SSH服务
应用更改并重启SSH服务:
```bash
sudo systemctl restart ssh
```
将公钥添加到授权密钥文件
1、创建授权密钥文件
在新用户的.ssh
目录中创建授权密钥文件:
```bash
sudo touch /home/newuser/.ssh/authorized_keys
```
2、添加公钥到授权密钥文件
将新用户的公钥内容复制到授权密钥文件中:
```bash
sudo cat /home/newuser/.ssh/id_rsa.pub >> /home/newuser/.ssh/authorized_keys
```
确保authorized_keys
文件的权限正确:
```bash
sudo chmod 600 /home/newuser/.ssh/authorized_keys
```
3、测试SSH连接
从另一台机器或本机测试SSH连接到新用户:
```bash
ssh newuser@localhost
```
或使用实际服务器地址替换localhost
,如果配置正确,应该无需输入密码即可登录。
通过上述步骤,你可以在Linux系统中创建一个新用户,并为其配置SSH密钥对以及相应的服务器设置,从而实现安全的远程访问,这种方法比单纯使用密码更安全,因为密钥提供了更强的加密和认证机制。
相关问题与解答
Q1: 如果我想限制新用户的SSH访问权限,应该如何操作?
A1: 你可以通过编辑/etc/ssh/sshd_config
文件来实现,可以在文件末尾添加如下内容来限制特定用户的访问权限:
```ini
Match User newuser
AllowUsers newuser
```
这样设置后,只有newuser
可以从SSH登录,还可以限制命令集、设置登录Shell等。
Q2: 如何在不重启SSH服务的情况下应用配置更改?
A2: 通常情况下,编辑了sshd_config
文件后需要重启SSH服务以使更改生效,如果你不想重启整个服务,可以使用命令sudo systemctl reload ssh
来重新加载配置而不需要完全重启服务,这在生产环境中非常有用,因为可以避免服务的短暂中断。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/589428.html