服务器配置免密码登录,通常指的是使用SSH密钥对进行身份验证,而不是传统的用户名和密码,这种方法不仅提高了安全性,还简化了登录过程,以下是实现这一目标的详细步骤:
生成SSH密钥对

需要在客户端计算机上生成一个SSH密钥对,可以使用以下命令:
ssh-keygen -t rsa -b 4096
这将在用户主目录下的.ssh
文件夹中生成两个文件:id_rsa
(私钥)和id_rsa.pub
(公钥),按提示操作,可以选择默认路径和文件名,也可以自定义。
将公钥复制到服务器
需要将公钥复制到目标服务器上,有几种方法可以做到这一点:
方法一:使用ssh-copy-id
工具
这是最简单的方法,只需运行以下命令:
ssh-copy-id user@server_ip
系统会提示输入一次密码,之后公钥将被自动复制到服务器上的~/.ssh/authorized_keys
文件中。
方法二:手动复制

如果出于某些原因不能使用ssh-copy-id
,可以手动复制公钥,显示公钥内容:
cat ~/.ssh/id_rsa.pub
登录到服务器并编辑~/.ssh/authorized_keys
文件,将公钥内容追加到文件中:
echo "your_public_key_content" >> ~/.ssh/authorized_keys
确保authorized_keys
文件的权限正确设置:
chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
配置SSH服务
为了确保SSH服务能够正确使用密钥对进行身份验证,需要检查并修改一些配置文件。
编辑sshd_config
在服务器上,编辑/etc/ssh/sshd_config
文件:
sudo nano /etc/ssh/sshd_config
确保以下配置项设置为yes
:

PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
建议禁用密码认证以提高安全性:
PasswordAuthentication no
保存并关闭文件后,重启SSH服务以应用更改:
sudo systemctl restart sshd
测试免密码登录
尝试从客户端计算机登录到服务器,看看是否还需要输入密码:
ssh user@server_ip
如果一切正常,应该可以直接登录而无需输入密码。
步骤 | 命令 | 描述 |
1 | ssh-keygen -t rsa -b 4096 | 生成SSH密钥对 |
2 | ssh-copy-id user@server_ip 或 手动复制公钥 | 将公钥复制到服务器 |
3 | sudo nano /etc/ssh/sshd_config | 编辑SSH配置文件 |
4 | sudo systemctl restart sshd | 重启SSH服务 |
5 | ssh user@server_ip | 测试免密码登录 |
FAQs
Q1: 如果我已经有一个现有的SSH密钥对,如何将其用于新的服务器?
A1: 如果你已经有一个现有的SSH密钥对,可以使用ssh-copy-id
工具将公钥复制到新服务器,或者手动将公钥内容追加到新服务器的~/.ssh/authorized_keys
文件中,具体步骤与上述“将公钥复制到服务器”部分相同。
Q2: 我可以在多个服务器上使用同一个SSH密钥对吗?
A2: 是的,你可以在多个服务器上使用同一个SSH密钥对,只需将同一个公钥复制到每个服务器的~/.ssh/authorized_keys
文件中即可,这样可以方便地管理多个服务器的访问权限。
到此,以上就是小编对于“服务器配置免密码”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复