linux下怎么设置ssh免密码登录(linux配置ssh免密登录)

慈云数据 2024-01-30 行业资讯 287 0

Linux下如何设置SSH免密码登录及配置

Linux系统中,SSH(Secure Shell)是一种安全的远程登录协议,它允许用户通过网络远程管理和控制服务器。通常情况下,在使用SSH登录时需要输入密码进行身份验证。然而,通过配置SSH免密码登录,可以使得用户在不输入密码的情况下直接登录到目标主机上。本文将详细介绍如何在linux系统中设置SSH免密码登录并进行相应的配置。

linux下怎么设置ssh免密码登录(linux配置ssh免密登录)
(图片来源网络,侵删)

1. 生成SSH密钥对

首先,我们需要在本地主机上生成SSH密钥对。SSH密钥由公钥和私钥组成,其中公钥存储在远程主机上,而私钥存储在本地主机上。执行以下命令来生成SSH密钥对:

```

linux下怎么设置ssh免密码登录(linux配置ssh免密登录)
(图片来源网络,侵删)

$ ssh-keygen -t rsa

这将生成一个RSA类型的SSH密钥对。在生成过程中,系统会提示你选择密钥文件的保存路径,默认路径为`~/.ssh/id_rsa`。如果你希望使用其他名称或路径,请根据需要进行更改。

2. 将公钥复制到远程主机

生成SSH密钥对后,我们需要将公钥复制到远程主机上,以便实现免密码登录。可以使用以下命令将公钥复制到远程主机上:

$ ssh-copy-id username@remote_host

其中,`username`是远程主机上的用户名,`remote_host`是远程主机的IP地址或域名。执行此命令后,系统会要求输入远程主机的密码进行身份验证。

如果你无法使用`ssh-copy-id`命令,可以手动将公钥内容复制到远程主机的`~/.ssh/authorized_keys`文件中。首先,使用以下命令将公钥复制到剪贴板:

$ cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

然后,将`username`替换为远程主机上的用户名,`remote_host`替换为远程主机的IP地址或域名。执行此命令后,系统会要求输入远程主机的密码进行身份验证。

3. 配置SSH服务器

在远程主机上,我们还需要进行一些配置以允许SSH免密码登录。首先,使用以下命令打开SSH服务器的配置文件

$ sudo vi /etc/ssh/sshd_config

然后,找到并修改以下行:

PasswordAuthentication no

PubkeyAuthentication yes

确保`PasswordAuthentication`设置为`no`以禁用密码身份验证,而`PubkeyAuthentication`设置为`yes`以启用公钥身份验证。保存并关闭文件。

最后,重新启动SSH服务器以使配置生效:

$ sudo systemctl restart sshd

4. 测试SSH免密码登录

现在,你可以尝试使用SSH免密码登录到远程主机上。执行以下命令:

$ ssh username@remote_host

如果一切配置正确,你将直接登录到远程主机上,而无需输入密码。

总结

通过以上步骤,你已经成功地设置了Linux系统下的SSH免密码登录并进行了相应的配置。这样可以提高登录的便捷性和安全性,减少了密码被破解的风险。记得妥善保管私钥,并定期更换密钥以增强安全性。

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon