首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我不明白为什么在ssh公钥/私钥身份验证中,公钥放在服务器上

在SSH公钥/私钥身份验证中,公钥放在服务器上是为了实现安全的身份验证和加密通信。

SSH公钥/私钥身份验证是一种常用的身份验证方式,用于在客户端和服务器之间建立安全的通信连接。在这种身份验证方式中,客户端生成一对密钥,包括公钥和私钥。公钥用于加密数据,私钥用于解密数据。

在身份验证过程中,客户端将自己的公钥发送给服务器。服务器将公钥保存在一个特定的文件中,通常是用户的家目录下的.ssh/authorized_keys文件。当客户端尝试连接服务器时,服务器会向客户端发送一个随机的挑战字符串。客户端使用私钥对挑战字符串进行加密,并将加密后的结果发送给服务器。服务器使用之前保存的公钥对加密结果进行解密,并将解密后的结果与挑战字符串进行比较。如果匹配成功,身份验证通过,客户端被允许访问服务器。

公钥放在服务器上的好处是:

  1. 安全性:公钥放在服务器上,私钥保存在客户端,私钥不会被泄露给其他人。这样可以保证身份验证的安全性,防止未经授权的访问。
  2. 方便性:公钥放在服务器上后,客户端可以使用私钥进行身份验证,无需输入密码。这样可以提高登录的便利性和效率。
  3. 可扩展性:公钥放在服务器上后,可以方便地管理多个用户的公钥。管理员可以在服务器上维护一个公钥列表,轻松地添加、删除和更新用户的公钥。
  4. 兼容性:SSH公钥/私钥身份验证是一种通用的身份验证方式,几乎所有的SSH服务器和客户端都支持。因此,公钥放在服务器上可以与各种不同的SSH实现兼容。

腾讯云提供了一系列与SSH相关的产品和服务,例如云服务器(CVM)、密钥对管理(密钥对用于SSH身份验证)、堡垒机等。您可以通过以下链接了解更多信息:

  1. 云服务器(CVM):https://cloud.tencent.com/product/cvm
  2. 密钥对管理:https://cloud.tencent.com/document/product/213/6090
  3. 堡垒机:https://cloud.tencent.com/product/bastion
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

4.3 服务器的 Git - 生成 SSH

生成 SSH 如前所述,许多 Git 服务器都使用 SSH 进行认证。 为了向 Git 服务器提供 SSH ,如果某系统用户尚未拥有密钥,必须事先为其生成一份。...这个过程在所有操作系统都是相似的。 首先,你需要确认自己是否已经拥有密钥。 默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下。....pub 文件是你的,另一个则是私钥。 如果找不到这样的文件(或者根本没有 .ssh 目录),你可以通过运行 ssh-keygen 程序来创建它们。... Linux/Mac 系统ssh-keygen 随 SSH 软件包提供; Windows ,该程序包含于 MSysGit 软件包。...现在,进行了上述操作的用户需要将各自的发送给任意一个 Git 服务器管理员(假设服务器正在使用基于SSH 验证设置)。

1.3K10

记一次给自己服务器启用私钥登录并禁用密码登录ssh

前几天恰好学到《用认证的方式对服务器进行ssh登录》,然后就打算在自己的服务器上面实践一番 上课的时候老师发下来的文档 半个多月没登服务器,登录之后发现自从上次登录以来居然有四千多次失败的登录尝试...(+私钥) 接下来就是给密钥文件设置权限,按照openssh的要求,这些目录和文件的权限必须是这些,没啥解释,设置完权限之后将内容导入到ssh用于认证的文件,此处的密钥文件的文件名是“root_rsa..._2048”,的文件名就是私钥的文件名后面加上“.pub”,如果此处提示没有“authorized_keys”文件的话就自行用touch命令创建一个,或者先导入之后再执行设置权限 设置权限并导入...”并将其的值设置为yes 然后挑选一个自己趁手的方式,从服务器上下载私钥到本地 下载私钥文件 然后在你的ssh客户端上导入私钥这里用的是系统自带的openssh,使用以下命令导入ssh私钥: sc...系的是“service xxx restart”(“xxx”是要操作的服务的名称) 重启ssh服务 重启完成之后,已导入私钥的电脑登录服务器不再需要输入密码,没有导入私钥的电脑上将无法登录服务器

99110
  • ssh登录

    自己在网上找ssh登录的教程,发现写的都不符合迷糊的那一点:然后自己查man帮助。...其中,public key存放在欲登录的服务器,而privatekey为特定的客户机所持有。...(这就是为什么先在本地生成密钥,而不是登录你的vps以后生成然后把私钥下载到本地,任何时刻都要保证私钥处在一个安全的地方) 使用想远程连接SSH服务器哪个用户,客户端上就必须用哪个用户生成秘对,必须放在服务器对应用户的家目录下面.../    #查看刚才秘有没有生成成功 id_backup  id_backup.pub  known_hosts #把上传到ssh 服务端。...600 [root@backup ~]# cat id_backup.pub >>/root/.ssh/authorized_keys  #把刚才上传文件追加到这个文件里面,这个是用于用户身份验证的文件

    2.8K30

    如何在远程 SSH 服务器创建和添加 SSH 密钥?

    密钥对由私钥组成,用于加密数据,私钥用于解密数据。以下是本地机器生成 SSH 密钥对的步骤:打开终端:本地机器打开终端应用程序。...将添加到远程服务器本地生成 SSH 密钥对后,接下来需要将添加到远程 SSH 服务器,以便进行身份验证。...测试 SSH 密钥身份验证完成上述步骤后,您已经成功将添加到远程服务器。现在,让我们测试 SSH 密钥身份验证是否正常工作。...使用 SSH 代理后,您无需本地机器复制和添加 SSH 密钥,而是直接使用本地机器的密钥进行远程身份验证。5. 总结本文详细介绍了如何在远程 SSH 服务器创建和添加 SSH 密钥。...通过生成密钥对,并将添加到远程服务器的 authorized_keys 文件,您可以实现无需密码的安全身份验证。我们还介绍了如何使用 SSH 代理来简化复杂的网络配置。

    6K30

    如何在SecureCRT使用登陆Linux服务器

    其实理解是这样的: 当我们创建了私钥(这是一对,登陆时要使用私钥解密)后,把给任何服务器,登陆Linux服务器时,只要我们的私钥不变,登陆任何服务器都是不需要密码的。...而是使用私钥进行身份验证。安全的多!这里也隐含了一个小细节,就是不要把你的私钥给丢了。否则,你想想,几百台服务器上好不容易把你的配置好,而你的私钥丢失,怎么办?私钥是不能单独生成的!...3、SecureCRT创建服务器连接。协议使用ssh“鉴权”方法,取消勾选“密码”。选择“”,然后点击右边的属性按钮,在对话框。...正常操作应该为该用户服务器创建一个账号,重新执行本次(Linux服务器端配置,第2点)操作。当然,你也可以偷懒,把他的也放到test账号的authorized_keys文件。...如果你设置了口令,连接时比如输入。为了安全,这个口令是必须要有的。SecureCRT,口令被翻译为:通行短语。呵呵。 补充一下,linux系统,如何创建私钥呢?

    2.5K20

    SSH 学习笔记

    它通过在网络创建安全隧道来实现 SSH 客户端和服务器之间的连接。SSH 是一种协议,存在多种实现,既有商业实现,也有开源实现(OSSH,OpenSSH)。...---- ssh-keygen 是安全外壳( SSH )协议套件的标准组件,用于生成,管理和转换身份验证密钥。...机制灵活,但加密和解密速度却比对称密钥加密慢得多。 是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。...一般将放在 GitHub 上面,然后用进行加密文件,私钥进行解密问题。 私钥原则: 总结来说:SSH 是用来进行免密登录的,不用每次都输入密码。...---- 参考: 深入了解SSH SSH原理与运用 SSH 私钥的理解 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/152634.html原文链接:https

    44810

    Linux:SSH和基于密钥的身份验证

    基于密钥的身份验证允许自动化工具无需管理员输入密码(或将密码存储配置文件)的情况下对远程系统进行身份验证将在下面更详细地探讨这个想法。 什么是基于密钥的身份验证?...密钥是: :此密钥可以跨网络传输到远程系统。任何使用加密的数据只能使用相关的私钥解密。 私钥:此密钥安全地存储本地设备,绝不会跨网络传输。任何使用私钥加密的数据只能使用解密。...您将在管理工作站(管理员的本地计算机)生成一个-私钥对,然后将复制到一个或多个远程服务器连接尝试期间,远程服务器使用管理员工作站的加密一条消息挑战。...命令生成/私钥对。...您将使用相同的私钥进行所有连接。 该过程的前两个步骤是: 使用 ssh-keygen 命令本地系统生成密钥对。 使用 ssh-copy-id 命令将新的复制到每个远程服务器

    84490

    ssh 连接Linux确实很安全,这6种身份验证方法很强!

    SSH(Secure Shell)是一种网络协议,用于不安全的网络安全地运行网络服务。 Linux SSH 是一种常用的远程访问工具,它可以让用户远程服务器执行命令,上传和下载文件等。...同时,还可以使用其他的身份验证方法来增强安全性。身份验证身份验证是一种基于密码学的身份验证方法。它通过私钥的组合来验证用户的身份。...使用身份验证时,用户需要生成一对私钥,并将存储服务器。当用户连接到服务器时,系统会向用户发送一个随机的字符串,用户需要使用私钥对这个字符串进行加密,并将加密后的字符串发送回服务器。...如果服务器能够成功地解密字符串,则证明用户的身份已经通过验证。身份验证比密码身份验证更安全,因为私钥比密码更难被破解。但是,身份验证需要用户先生成私钥,并将存储服务器。...这个票据用于验证用户的身份,并允许用户访问其他服务器。Kerberos 身份验证身份验证更安全,因为它不需要用户存储私钥,而是使用一个中央服务器来分发密钥。

    1.4K01

    了解SSH加密和连接过程【官方推荐教程】

    它位于远程服务器用户帐户主目录authorized_keys的~/.ssh目录调用的文件。 在建立对称加密以保护服务器和客户端之间的通信之后,客户端必须进行身份验证以允许访问。...此号码用作此交互的私钥(与用于身份验证的私有SSH密钥不同)。 生成的私钥,加密生成器和共享素数用于生成从私钥派生但可以与另一方共享的。 两个参与者然后交换他们生成的。...用于加密只能使用私钥解密的数据。可以自由共享,因为尽管它可以加密私钥,但是没有从公导出私钥的方法。 在建立对称加密之后,使用SSH密钥对进行身份验证,如上一节所述。...如果在文件中找到具有匹配ID的,则服务器生成随机数并使用加密该号码。 服务器向客户端发送此加密消息。 如果客户端实际具有关联的私钥,则它将能够使用该密钥解密消息,从而显示原始号码。...使用的两种类型的加密(对称共享密钥和非对称 - 私钥)都能够利用它们在此模型的特定优势。 结论 了解SSH的连接协商步骤和加密层可以帮助您更好地了解登录到远程服务器时发生的情况。

    2.9K20

    git多账号配置和多个ssh配置

    第三步:拷贝 除了命令行打印出已生成的信息手动复制外,可以使用命令拷贝到粘贴板下,请参考操作系统使用以下命令进行拷贝: Windows(WSL或Git Bash下): cat ~/.ssh...这些文件通常存储在用户夹目录下的 .ssh 文件夹私钥应该保持私密,并且只被用于生成签名,而则可以安全地分发给任何人,用于验证您的身份。...# publickey意味着SSH客户端将首先尝试使用/私钥对进行身份验证 IdentityFile ~/.ssh/gitlab_id_rsa # IdentityFile 指定了私钥文件的路径...2. hostbased:基于主机的身份验证,客户端使用主机上的密钥进行身份验证。这种方法不常用,通常需要服务器端有客户端主机的信息。 3. publickey:使用/私钥对进行身份验证。...客户端提供私钥服务器验证与预存储的是否匹配。

    38610

    Ubuntu 16.04的初始服务器设置

    这将在本地用户的主目录的.ssh目录中生成一个私钥id_rsa和一个id_rsa.pub。请记住,私钥不应该与任何不应该访问您的服务器的人共享!...复制 生成一个SSH密钥对后,您将需要将您的复制到新的服务器。 我们将介绍两个简单的方法来做到这一点。...要使用SSH密钥作为新的远程用户进行身份验证,必须将添加到用户主目录的特殊文件。...我们将使用nano编辑文件: $ nano ~/.ssh/authorized_keys 现在把你的(它应该放在你的剪贴板)粘贴到编辑器。...第五步 - 禁用密码验证(推荐) 现在您的新用户可以使用SSH密钥登录,您可以通过禁用仅密码身份验证来提高服务器的安全性。这样做会限制SSH访问您的服务器认证。

    2.9K11

    使用Ubuntu 16.04进行初始服务器设置

    如果要提高服务器的安全性,请执行本教程的其余步骤。 第四步 - 添加认证(推荐) 保护服务器的下一步是为新用户设置身份验证。设置此项将通过要求私钥SSH密钥登录来提高服务器的安全性。...要使用SSH密钥作为新远程用户进行身份验证,必须将添加到用户主目录的特殊文件。...这样做会将对服务器SSH访问限制为仅限验证。也就是说,登录到服务器(除了控制台)的唯一方法是拥有与已安装的配对的私钥。...注意:如果您按照上一节第4步的建议为用户安装了,则仅禁用密码验证。否则,您将锁定自己的服务器! 要在服务器禁用密码验证,请按照下列步骤操作。...为此,请使用此命令(替换您的用户名和服务器IP地址): ssh sammy@your_server_ip 如果您向用户添加了身份验证,如步骤4和步骤5所述,您的私钥将用作身份验证

    1.6K01

    ASP.NET Core + Jenkins实现自动化发布

    sudo usermod -s /bin/bash jenkins 切换到jenkins用户 sudo su - jenkins 服务器输入以下命令创建身份验证凭据私钥,-C 后面的参数可以是任意内容...ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com" 生成后,服务器输入以下命令读取内容,然后将内容复制到gitee指定项目的 管理->部署管理->添加添加指定..., cat ~/.ssh/id_ed25519.pub gitee添加后,服务器执行以下命令 ssh -T git@gitee.com 通过执行以下命令读取ssh身份验证私钥内容,并输入到...jenkins 服务器执行以下命令,创建ssh 身份认证秘,并将复制到应用服务器,以便在编译成功后,直接复制dll到应用服务器,而无需输入应用服务的登录密码,需要注意的是,创建秘前,先切换到...sudo su - jenkins ssh-keygen -t rsa 以下命令表示将jenkins所在服务器生成的复制到应用服务器(因为~/.ssh/目录下已经有其他的秘,因此这边指定复制哪一个

    22410

    防患于未然,应对“删库跑路”的一种解决思路

    基本思想 这个方法的基本思想是:你还是要为每位开发人员生成一个 - 私钥对。但是,不要把上载到服务器。 而是使用之前生成的,所谓的证书颁发机构(CA)密钥对公共密钥进行签名。...这个签名就是生成了第三个证书文件,你将它还给开发人员,然后让他们放在.ssh/ 文件夹,和私钥放在一起。...it securely 然后在你的服务器,设置为允许由你的 CA 签名的所有用户访问该服务器: 将 CA 的上传到服务器,例如放在 /etc/ssh/ca.pub /etc/ssh/sshd_config...现在,如果一位开发人员生成了他的 - 私钥对(例如 ssh-keygen -t ecdsa -b 521),他们只需向你发送他们的(请注意,你永远不需要发送任何私钥!)。...它将生成证书 id_ecdsa-cert.pub,你可以将其发送给开发人员,然后将其放在〜/.ssh 文件夹 / 私钥对旁边。

    48910

    如何在 Linux、macOS 和 Windows 查看 SSH 密钥?

    SSH(Secure Shell)密钥是用于身份验证和安全通信的重要组成部分。Linux、macOS和Windows操作系统,你可以通过一些简单的步骤来查看已安装的SSH密钥。...终端将显示你的SSH密钥内容。3. Windows查看私钥(使用 Git Bash)Windows操作系统,可以使用Git Bash来查看SSH密钥。打开Git Bash应用程序。...查看私钥(使用 PuTTY)如果你Windows使用PuTTY作为SSH客户端,可以使用PuTTY Key Generator(puttygen)来查看SSH密钥。...导入私钥后,将自动显示"Public key for pasting into OpenSSH authorized_keys file"字段。你可以复制内容并粘贴到其他位置进行使用。...如果你怀疑密钥的安全性受到威胁,应该立即生成新的密钥对并更新相关系统或服务。总结SSH密钥是安全通信和身份验证的重要工具。

    4.4K00

    了解SSH加密和连接过程 转

    对称密钥由SSH用于加密整个连接。与某些用户所设想的相反,可以创建的/私钥不对称密钥对仅用于身份验证,而不用于对连接进行加密。对称加密甚至可以保护密码认证免受窥探。...它放置远程服务器用户帐户主目录authorized_keys的~/.ssh目录调用的文件。 在建立对称加密以保护服务器和客户端之间的通信之后,客户端必须进行身份验证才能被允许访问。...服务器可以使用该文件来加密到客户端的质询消息。如果客户可以证明它能够解密这个消息,它已经证明它拥有相关的私钥服务器然后可以为客户端设置环境。 哈希 SSH利用的另一种数据操作形式是加密哈希。...此号码用作此交互的私钥(与用于身份验证的私有SSH密钥不同)。 生成的私钥,加密生成器和共享素数用于生成从私钥导出但可与另一方共享的。 两位参与者然后交换他们生成的。...用于加密只能用私钥解密的数据。可以自由共享,因为虽然它可以对私钥进行加密,但没有从公中派生私钥的方法。 如上一节所述,在建立对称加密之后,使用SSH密钥对进行身份验证

    1.2K20

    非对称加密的应用

    两个密钥是不同的,也可以称作“不对称”,可以公开给任何人使用,而私钥必须严格保密(理论不能被第三方知道,除非你的计算机被入侵)。这是非对称加密的一个非常重要的一个特性。...答案肯定是不能,我们仔细回忆一下公私钥加密的特性,加密私钥解密,私钥加密解密,私钥唯一保存,所有客户端都有保存。...首先还是我们本地生成公私钥,当然如果你本地计算机已经生成公私钥就不需要重复生成了,我们将配置到远程目标服务器,如何配置呢,通常是将的内容填写到目标服务器的一个文件,这个文件的位置目标服务的...配置如图,登录远程服务器,进入.ssh目录,将本地计算机的添加到目标服务器的 ~/.ssh/authorized_keys。...可以看到这里配置了1把,所以有拥有和这个匹配的私钥的客户端可以用ssh免密登录这个服务器

    2K40

    如何在 Linux、macOS 和 Windows 查看 SSH 密钥?

    终端将显示你的SSH密钥内容。 3. Windows 查看私钥(使用 Git Bash) Windows操作系统,可以使用Git Bash来查看SSH密钥。 打开Git Bash应用程序。...查看私钥(使用 PuTTY) 如果你Windows使用PuTTY作为SSH客户端,可以使用PuTTY Key Generator(puttygen)来查看SSH密钥。...导入私钥后,将自动显示"Public key for pasting into OpenSSH authorized_keys file"字段。你可以复制内容并粘贴到其他位置进行使用。...例如,你可以有一个密钥用于访问远程服务器,另一个密钥用于GitHub等代码托管平台。 如果你怀疑密钥的安全性受到威胁,应该立即生成新的密钥对并更新相关系统或服务。...总结 SSH密钥是安全通信和身份验证的重要工具。Linux、macOS和Windows操作系统,你可以使用不同的方法来查看已安装的SSH密钥。

    6.6K61

    再回顾一下什么是SSH

    非对称加密的发送和接收需要使用一对关联的SSH密钥,私钥私钥由生成的一方自己保管,可以发送给任何请求通信的其他人。...SSH连接过程的两个阶段使用了非对称加密。一个是密钥交换阶段,服务器和客户端都生成了自己临时的私钥,用于计算出同一个用于后续加密通信内容的会话密钥。...密码认证是将自己的用户名和密码发送给服务器进行认证,这种方式比较简单,且每次登录都需要输入用户名和密码。密钥认证使用私钥对进行身份验证,实现安全的免密登录,是一种广泛使用且推荐的登录方式。...图片 SSH密钥认证登录流程 进行SSH连接之前,SSH客户端需要先生成自己的私钥对,并将自己的放在SSH服务器。...SSH客户端发送登录请求,SSH服务器就会根据请求的用户名等信息本地搜索客户端的,并用这个加密一个随机数发送给客户端。 客户端使用自己的私钥对返回信息进行解密,并发送给服务器

    53920

    科普:什么是SSH

    非对称加密的发送和接收需要使用一对关联的SSH密钥,私钥私钥由生成的一方自己保管,可以发送给任何请求通信的其他人。...SSH连接过程的两个阶段使用了非对称加密。一个是密钥交换阶段,服务器和客户端都生成了自己临时的私钥,用于计算出同一个用于后续加密通信内容的会话密钥。...密码认证是将自己的用户名和密码发送给服务器进行认证,这种方式比较简单,且每次登录都需要输入用户名和密码。密钥认证使用私钥对进行身份验证,实现安全的免密登录,是一种广泛使用且推荐的登录方式。...图片 SSH密钥认证登录流程 进行SSH连接之前,SSH客户端需要先生成自己的私钥对,并将自己的放在SSH服务器。...SSH客户端发送登录请求,SSH服务器就会根据请求的用户名等信息本地搜索客户端的,并用这个加密一个随机数发送给客户端。 客户端使用自己的私钥对返回信息进行解密,并发送给服务器

    1.1K30
    领券