linux - 如何设置公钥认证?

标签 linux ssh private-key public-key

如何为 SSH 设置公钥验证?

最佳答案

如果你安装了 SSH,你应该可以运行..

ssh-keygen

然后通过这些步骤,您将拥有两个文件,id_rsaid_rsa.pub(第一个是您的私钥,第二个是您的公钥 -你复制到远程机器的那个)

然后,连接到您要登录的远程计算机,在 ~/.ssh/authorized_keys 文件中添加您的 id_rsa.pub 文件的内容。

哦,还有 chmod 600 所有 id_rsa* 文件(本地和远程),因此其他用户无法读取它们:

chmod 600 ~/.ssh/id_rsa*

同样,确保远程 ~/.ssh/authorized_keys 文件也是 chmod 600:

chmod 600 ~/.ssh/authorized_keys

然后,当您执行 ssh remote.machine 时,它应该询问您 key 的密码,而不是远程机器。


为了更好地使用,您可以使用 ssh-agent 将解密的 key 保存在内存中 - 这意味着您不必每次都输入 key 对的密码。要启动代理,请运行(包括反引号,用于评估 ssh-agent 命令的输出)

`ssh-agent`

在某些发行版上,ssh-agent 会自动启动。如果你运行 echo $SSH_AUTH_SOCK 并且它显示了一个路径(可能在/tmp/中)它已经设置好了,所以你可以跳过前面的命令。

然后添加你的 key ,你做

ssh-add ~/.ssh/id_rsa

并输入您的密码。它会一直存储到您将其删除(使用 ssh-add -D 命令,该命令会从代理中删除所有 key )

关于linux - 如何设置公钥认证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7260/

相关文章:

linux - wget - "No route to host"运行armbian 的设备和android 热点之间的连接

linux - 当您从机器 C ssh 进入 ssh 隧道 B->A 时,私钥会发生什么变化?

c++ - RSA_Private_Decrypt 随机失败

c# - 将 AsymmetricAlgorithm 私钥和公钥与 RSA C# 结合使用

通过 PuTTy 运行 Nvim-R : setting up r_term_cdm

git - ssh_exchange_identification

linux - 如何列出目录shell脚本中的文件

linux - 无法输出缓冲区

linux - 如何执行 while 循环并将字符串重定向到其中

linux - 是否可以使用远程主机上不存在的子域来设置 ssh 反向隧道?