sshd 开启密钥对认证
时间: 2023-10-14 20:24:00 浏览: 40
为了通过 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 地址或域名。在进行登录时,不需要输入密码,而是直接使用本地私钥进行认证。
相关问题
设置sshd开启自启动
要设置sshd开启自启动,你需要在终端中以管理员身份运行以下命令:
1. 编辑sshd服务的启动配置文件
```
sudo nano /etc/ssh/sshd_config
```
2. 找到以下行:
```
#PermitRootLogin prohibit-password
```
3. 将其改为:
```
PermitRootLogin yes
```
4. 保存并退出文件。
5. 启动sshd服务并将其设置为自启动:
```
sudo systemctl enable ssh
sudo systemctl start ssh
```
现在,sshd服务将在系统启动时自动启动。
怎么开启sshd服务
要开启sshd服务,可以按照以下步骤进行操作:
1. 检查是否已安装sshd服务:
```shell
systemctl status sshd
```
如果显示"sshd.service"为"Loaded: loaded"且"Active: inactive",则表示sshd服务未安装。
2. 如果未安装sshd服务,可以使用以下命令安装:
```shell
sudo apt-get install openssh-server # Ubuntu/Debian
sudo yum install openssh-server # CentOS/RHEL
```
3. 安装完成后,可以使用以下命令启动sshd服务:
```shell
sudo systemctl start sshd
```
4. 若要设置sshd服务开机自启动,可以使用以下命令:
```shell
sudo systemctl enable sshd
```
5. 确认sshd服务已经启动:
```shell
systemctl status sshd
```
如果显示"sshd.service"为"Loaded: loaded"且"Active: active",则表示sshd服务已成功启动。