[置顶] SSH公钥认证

本文介绍如何通过SSH公钥认证实现无密码登录远程服务器的方法。首先创建公钥/私钥对,然后使用ssh-copy-id命令将公钥复制到远程服务器上指定用户的.ssh/authorized_keys文件中。最后验证公钥认证是否成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SSH公钥认证

 

关于公钥认证的原理,维基百科上的这个条目是一个很好的起点: http://en.wikipedia.org/wiki/Public-key_cryptography

如果你的主目录下不存在 .ssh 目录,说明你的 SSH 公钥/私钥对尚未创建。可以用这个命令创建:

$ ssh-keygen

该命令会在用户主目录下创建 .ssh 目录,并在其中创建两个文件:

  • id_rsa

    私钥文件。是基于 RSA 算法创建。该私钥文件要妥善保管,不要泄漏。

  • id_rsa.pub

    公钥文件。和 id_rsa 文件是一对儿,该文件作为公钥文件,可以公开。

创建了自己的公钥/私钥对后,就可以使用下面的命令,实现无口令登录远程服务器,即用公钥认证取代口令认证。

$ ssh-copy-id -i .ssh/id_rsa.pub user@server

说明:

  • 该命令会提示输入用户 user 在 server 上的SSH登录口令。
  • 当此命令执行成功后,再以 user 用户登录 server 远程主机时,不必输入口令直接登录。
  • 该命令实际上将 .ssh/id_rsa.pub 公钥文件追加到远程主机 server 的 user 主目录下的 .ssh/authorized_keys 文件中。

检查公钥认证是否生效,运行SSH到远程主机,正常的话应该直接登录成功。如果要求输入口令则表明公钥认证配置存在问题。如果SSH服务存在问题,可以通过查看服务器端的 /var/log/auth.log 进行诊断。

 

ssh-copy-id : https://anoncvs.mindrot.org/openssh/contrib/ssh-copy-id?view=co

http://henry.precheur.org/system/ssh-copy-id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值