sshd 开启密钥对认证
时间: 2023-10-14 08:24:00 浏览: 149
为了通过 SSH 以密钥对认证的方式登录到远程主机,需要进行以下设置:
1. 在本地生成公钥和私钥
使用以下命令在本地生成公钥和私钥:
```
ssh-keygen -t rsa -b 2048
```
该命令将生成一对公钥和私钥,存储在本地用户的 `~/.ssh` 目录中。在生成过程中,可以选择使用默认设置,即回车键即可。
2. 将公钥复制到远程主机
使用以下命令将本地生成的公钥复制到远程主机:
```
ssh-copy-id user@remote_host
```
其中 `user` 是远程主机的用户名,`remote_host` 是远程主机的 IP 地址或域名。该命令将自动将本地公钥复制到远程主机的 `~/.ssh/authorized_keys` 文件中,以便进行密钥对认证。
3. 修改 SSH 配置文件
在远程主机上修改 SSH 配置文件,启用密钥对认证。找到并编辑 `/etc/ssh/sshd_config` 文件,将以下两行前的注释符号 `#` 去掉:
```
RSAAuthentication yes
PubkeyAuthentication yes
```
保存并关闭文件,并重新启动 SSH 服务:
```
sudo service ssh restart
```
现在可以使用密钥对认证方式登录远程主机:
```
ssh user@remote_host
```
其中 `user` 是远程主机的用户名,`remote_host` 是远程主机的 IP 地址或域名。在进行登录时,不需要输入密码,而是直接使用本地私钥进行认证。
相关问题
etc/sshd/sshd_config
`/etc/sshd/sshd_config` 是SSH(Secure Shell)服务的配置文件。SSH允许用户通过网络安全地登录远程服务器执行命令。以下是一些关键配置项的简要介绍:
1. **Port** 或 **ListenAddress**: 定义SSH服务监听的端口。默认为22,可以修改以选择其他端口,如 `Port 2222`。
2. **PasswordAuthentication**: 控制是否允许密码登录。设为 `yes` 开启,`no` 关闭。通常推荐使用密钥对认证来增强安全性。
3. **PubkeyAuthentication**: 启用公钥认证,允许用户通过SSH密钥进行身份验证。
4. **AuthorizedKeysFile**: 指定存放用户公钥的文件路径,例如 `AuthorizedKeysFile /home/user/.ssh/authorized_keys`。
5. **PermitRootLogin**: 是否允许root用户通过SSH登录。设为 `no` 可以增加账户的安全性。
6. **UsePAM**: 如果设置为 `yes`,则启用Pluggable Authentication Modules(PAM),用于更复杂的认证策略。
7. **X11Forwarding**: 是否允许远程连接转发X11协议,如 `X11Forwarding yes`。
在Linux上,你可以通过文本编辑器如`vim`, `nano` 或 `vi` 来查看和编辑这个文件,但更改之前最好备份原始文件。例如,使用`vim`编辑器打开配置文件:
```shell
sudo vim /etc/sshd/sshd_config
```
完成编辑后,通常需要重启SSH服务使更改生效:
```shell
sudo service ssh restart
```
X11 SSHD_CONFIG配置
`SSHD_CONFIG`是OpenSSH服务器的一个配置文件,它位于Linux系统中`/etc/ssh/sshd_config`路径下。这个文件用于指定Secure Shell (SSH)服务的各种选项,允许管理员控制SSH服务器的行为、端口、认证机制以及其他安全性设置。
以下是`sshd_config`的一些重要配置项:
1. **Port**: 指定SSH监听的TCP端口,默认通常是22,可以根据需要更改。
2. **PermitRootLogin**: 控制是否允许root用户通过SSH登录,可以设为`yes`, `no` 或 `without-password`。
3. **PasswordAuthentication**: 是否允许密码认证,默认开启。
4. **PubkeyAuthentication**: 是否启用公钥认证,可以配合密钥对使用。
5. **AuthorizedKeysFile**: 定义存放客户端公钥的地方,通常是`~/.ssh/authorized_keys`。
6. **X11Forwarding**: 设置是否允许X11协议转发,可以控制远程桌面访问。
为了查看或编辑`SSHD_CONFIG`,你可以使用文本编辑器如`vim`、`nano`,或者运行`sudo nano /etc/ssh/sshd_config`(假设你已经安装了Nano编辑器)。在修改完毕后,通常需要重启SSH服务让新的配置生效,用命令`sudo service ssh restart` 或者 `systemctl restart sshd`.
阅读全文