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

linux 设置公钥登陆

在Linux系统中设置公钥登录可以增强系统的安全性,并简化登录过程。以下是关于公钥登录的基础概念、优势、类型、应用场景以及设置步骤:

基础概念

公钥登录,也称为SSH密钥登录,是一种基于公钥加密技术的身份验证方法。它使用一对密钥:公钥和私钥。公钥存储在服务器上,而私钥保留在客户端。当客户端尝试连接到服务器时,服务器会使用公钥加密一个随机字符串,并将其发送给客户端。客户端使用私钥解密该字符串,并将其发送回服务器。如果服务器能够验证解密后的字符串,则允许客户端登录。

优势

  1. 安全性:公钥登录比传统的密码登录更安全,因为私钥通常比密码更难猜测或破解。
  2. 便捷性:用户无需每次登录时都输入密码,只需使用私钥即可。
  3. 权限管理:可以为不同的用户或用户组分配不同的公钥,实现细粒度的访问控制。

类型

公钥登录主要涉及两种类型的密钥:

  1. RSA密钥:最常用的密钥类型,适用于大多数场景。
  2. ED25519密钥:一种更现代、更安全的密钥类型,推荐在支持的情况下使用。

应用场景

公钥登录广泛应用于远程服务器管理、自动化脚本执行、CI/CD管道等场景。

设置步骤

以下是在Linux系统中设置公钥登录的详细步骤:

1. 生成密钥对

在客户端机器上生成公钥和私钥对:

代码语言:txt
复制
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

或者使用更安全的ED25519密钥:

代码语言:txt
复制
ssh-keygen -t ed25519 -C "your_email@example.com"

按照提示操作,通常会将密钥保存在~/.ssh/id_rsa(或~/.ssh/id_ed25519)和~/.ssh/id_rsa.pub(或~/.ssh/id_ed25519.pub)。

2. 复制公钥到服务器

将生成的公钥复制到服务器的~/.ssh/authorized_keys文件中。可以使用以下命令:

代码语言:txt
复制
ssh-copy-id user@server_ip

或者手动复制:

代码语言:txt
复制
cat ~/.ssh/id_rsa.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

3. 配置SSH服务器

确保服务器的SSH配置文件/etc/ssh/sshd_config中允许公钥登录:

代码语言:txt
复制
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

并确保以下配置项被禁用或设置为更安全的值:

代码语言:txt
复制
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

4. 重启SSH服务

在服务器上重启SSH服务以应用更改:

代码语言:txt
复制
sudo systemctl restart sshd

常见问题及解决方法

  1. 权限问题:确保~/.ssh目录权限为700~/.ssh/authorized_keys文件权限为600
  2. 权限问题:确保~/.ssh目录权限为700~/.ssh/authorized_keys文件权限为600
  3. 密钥格式问题:确保公钥格式正确,没有多余的空格或换行符。
  4. SSH服务未启动:确保SSH服务已启动并正在运行。
  5. SSH服务未启动:确保SSH服务已启动并正在运行。

通过以上步骤,你应该能够在Linux系统中成功设置公钥登录。如果遇到任何问题,请检查相关日志文件(如/var/log/auth.log/var/log/secure)以获取更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

公钥私人 ssh避password登陆

使用公共密钥管理之前,腾讯云主机的备案机,非常头发的感觉,查了一下相关资料,这里总结下: 字符a:192.168.7.188 (ubuntu) 字符b:192.168.7.17 (centos) 希望从a登陆...b的时候,不须要输入password.我原先的想法是将b的公钥放到a的key文件里,这样让a使用公钥跟b的私钥 进行匹配.结果却恰恰相反, 实际的操作是将a的公钥放到b的key文件中面....在a上生成密钥,命令 ssh-keygen -t rsa (这里的加密类型类型也公钥选择dsa) 默认会在~/.ssh文件夹以下生存一对密钥 我们将id_rsa.pub中的内容拷贝到b机器的authorized_keys...中去就ok了,假设该文件不存在则又一次建一个 以下说下怎样使用公钥和密钥管理server使用者的权限,比方一台server有非常多开发人员使用,在遇到有员工离职的时候,我们都须要更改password什么的...,这样对大家来说都听麻烦,有了密钥,我们在平时的时候要求大家都使用自己的公钥来登陆server,在员工离职的时候,管理员仅仅须要删除离职员工的公钥就公钥了.

41920
  • 如何在SecureCRT上使用公钥登陆Linux服务器?

    我以前一直使用口令通过ssh协议登陆Linux服务器,最近公司要求使用公钥登陆。说是安全,好吧。那我们整一下。那到底使用公钥登陆服务器有什么好处呢?...其实我理解是这样的: 当我们创建了公钥和私钥(这是一对,登陆时要使用私钥解密公钥)后,把公钥给任何服务器,登陆Linux服务器时,只要我们的私钥不变,登陆任何服务器都是不需要密码的。...选择“公钥”,然后点击右边的属性按钮,在对话框中。 image.png 使用全局公钥设置:表示所有连接都使用该公钥连接服务器。 使用会话公钥设置:可以分别为每个连接指定不同的公钥。...最后,使用SecureCRT登陆linux服务器。 这里要注意,即使你使用公钥登陆服务器,当你连接的时候,还是要你输入用户名。为何呢?不是说公钥验证么?...这时系统默认以为你登陆的远程账号就是你当前登陆的账号。 如果你设置了公钥口令,连接时比如输入。为了安全,这个口令是必须要有的。在SecureCRT中,口令被翻译为:通行短语。呵呵。

    2.5K20

    公钥私钥

    使用公钥私钥 密码配送的原因就在于对称加密使用的密钥是相同的。如果我们使用非对称加密算法(公钥只用来加密,私钥只用来解密),这个问题是不是就能够解决了?...回到小明和小红通信的问题,如果小红事先生成了公钥私钥,并把公钥发给了小明,则小明可以将情书使用公钥进行加密,然后发给小红,这个情书只有小红才能解密。即使公钥被窃听了也没有关系。...当然这里也有一个问题,就是小明要确保生成的公钥的确是小红发出来的。这个问题的解决方法我们会在后面讨论。 公钥密钥还有一个问题就是速度的问题,只有对称加密算法的几百分之一。...下面画个序列图,解释一下公钥密码的交互流程: ?

    1.8K20

    Linux: gpg 公钥签名技术学习

    其核心是基于公钥密码学(Public Key Cryptography)的技术,即使用一对密钥进行加密和解密操作。本文将深入探讨GPG的公钥签名技术,及其在数据安全中的应用。...什么是公钥签名技术? 公钥签名技术是一种确保数据完整性和真实性的方法。在公钥密码学中,每个用户拥有一对密钥:公钥和私钥。公钥可以公开分发,而私钥必须严格保密。...GPG 公钥签名的具体实现 在GPG中,实现公钥签名和验证过程非常简单。...生成ED25519算法的密钥 ED25519是一种基于椭圆曲线的公钥签名算法,具有高安全性和高性能的特点。以下是使用GPG生成ED25519密钥对的步骤。...done 使用以下命令生成密钥对: bash gpg --batch --generate-key gpg-gen-all-purpose-key-script 处理无密码短语的密钥 即使没有为私钥设置密码短语

    25710

    公钥与私钥

    鲍勃有两把钥匙,一把是公钥,另一把是私钥。 鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。...道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。...因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。 后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。...她想到了一个办法,要求鲍勃去找"证书中心"(certificate authority,简称CA),为公钥做认证。...苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。 下面,我们看一个应用"数字证书"的实例:https协议。这个协议主要用于网页加密。

    1.6K21

    Linux生成私钥和公钥免密连接

    本文介绍Linux系统生成私钥和公钥进行免密连接,内容比较简单,阅读需要3分钟。 1.大致流程 有时需要从服务器A免密连接到服务器B,这时需要在服务器A生成私钥和公钥,大致过程其实就2步。...1.1 在服务器A生成公钥和私钥 在服务器A上输入如下命令: ssh-keygen -t rsa 过程中按三次回车,执行结束如下图: ?...其中 id_rsa为私钥 id_rsa.pub为公钥,接下来打开id_rsa.pub,将内容复制。...1.2 在服务器B配置服务器A生成的公钥 打开服务器B,将刚刚在服务器A内复制的内容追加到/root/.ssh/authorized_keys内,到这里没有特殊情况就配置成功了。...1.3 意外情况 可能设置完成后还是无法免密登录,那么可以远程连接时加入-vvv在登录时打印日志信息,如下 ssh root@47.98.109.195 -vvv 在配置的时候遇到过权限不足,在服务器B

    3K10

    图解公钥与私钥

    在学习ssh时,一定有不少人对公钥和私钥产生过不解。在搜索公钥跟私钥的理解时,发现了这篇有趣的图解小文章,与大家共享。 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。 ? 2....鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 ? 3. 苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 ? 4....道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。...因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。 ? 11. 后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。...苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。 ? 14. 下面,我们看一个应用"数字证书"的实例:https协议。

    1.8K10

    为什么用公钥加密却不能用公钥解密?

    不同点在于,非对称加密,加密和解密用到的不是同一个秘钥,而是两个不一样的秘钥,分别是公钥和私钥。 非对称加密 公钥负责加密,私钥负责解密。公钥人人可得,私钥永远不泄露。 那么问题就来了。...为什么用公钥加密,却不能用公钥解密? 这其实就涉及到公钥和私钥加密的数学原理了。...这两块碎玉,就有点公钥和私钥的味道。 公钥和私钥的关系 原理大家知道这么多其实就够了。 看到这里,我们就能回答标题的问题了。 为什么用公钥加密,却不能用公钥解密?...所以需要有个办法证明客户端拿到的公钥是真正的服务器公钥,于是就拿CA的私钥去做一次加密变成服务器证书,这样客户端拿CA的公钥去解密,就能验证是不是真正的服务器公钥。...• TLS四次握手的过程中涉及到两对私钥和公钥。分别是服务器本身的私钥和公钥,以及CA的私钥和公钥。

    1.1K20

    Linux设置仅秘钥登录

    需求 Linux服务器设置仅秘钥登录,禁止密码登录。 这个小破站都被黑了,密码被强制破解后登录,蚌埠住了。 主要是想的自己小博客也没啥机密信息,不会真有人无聊到来黑吧,不会吧不会吧,结果还真有。...以下是我的处理方式 linux w命令 先w下看是不是正在登录,结果一查,还真有个广州的登录还在线,记录下该登录的IP。...腾讯云控制台-SSH秘钥 控制台中创建秘钥并绑定自己的实例服务器。 在Xshell中测试下使用秘钥登录 测试可以登录成功。...验证   PubkeyAuthentication yes #是否使用公钥验证   AuthorizedKeysFile .ssh/authorized_keys #公钥的保存位置腾讯云配置时已自动加上...参考: 设置密码登录 :https://www.cnblogs.com/dyj–php/p/9656016.html Post Views: 123

    1.9K10

    证书、公钥、加密验证

    公钥 和 私钥 公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。...比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。...,一把是公钥,另一把是私钥 2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把 苏珊要给鲍勃写一封保密的信。...道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。...因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。 后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。

    1.7K10

    RSA的公钥私钥

    一、公钥私钥 非对称加密使用的是RSA算法,所谓的非对称,指的是,加密时使用的秘钥和解密时使用的秘钥是不一样的。也就是说RSA有一对秘钥,其中一个是公钥,另一个是私钥,一个用于加密,一个用于解密。...公钥可以被任何人获取。获取到对方的公钥,就可以通过公钥验证对方的签名;同时使用对方的公钥加密,也只能被对方的私钥解密。...因为公钥是公开的,也为通讯双方的公钥交换提供了便利,不用在考虑交换时是否泄漏了。 二、签名验签与加密解密的关系 首先强调一点,签名验签与加密解密之间没有关系。...如果签名使用的是公钥,公钥人人都可以从网上获取,一个非法的调用者也可以获得这个公钥并签名向微信发请求,即使微信平台验签通过也不知道这个调用者是否合法。...而公钥是全网公开的,谁都能获取。

    2.5K40

    算法基础-RSA公钥体系

    公钥加密系统 在一个公钥加密系统中,任何人参与者都拥有独自的公钥和密钥,通常用P表示公钥,用S表示密钥,公钥用于加密,密钥用于解密。...并且公钥可以公开,任何人都可以使用这个公钥发送一段密文,而只有私钥的持有者才可以用私钥解密 公钥和私钥对应的函数互为反函数 RSA公钥加密体系基于一个数论事实:把两个大质数相乘很容易,但是分解大数为两个质数的乘积很难...RSA加密 在RSA公钥加密系统中,可以通过以下过程创建一对公钥和私钥 任意选取远大于信息 M 的大质数 p 和 q,且 p !...n = pq 计算 φ = (p-1)(q-1) 选取一个与 φ 互质的小奇数 e 计算对模 φ 意义下的 e 的乘法逆元 d,即 ed ≡ 1 (mod φ) 公开 P=(e, n),此即为RSA公钥

    96020

    公钥私钥的那点事儿

    tab=info 粘贴app公钥到沙箱环境中 ? 支付宝公钥一会再程序中要使用 ? 使用 python-alipay-sdk 支付&查询支付结果 说明       1....这两个密钥,我们称之为公钥和私钥,其使用规则如下: 公钥和私钥总是成对使用的 用公钥加密的数据只有对应的私钥可以解密 用私钥加密的数据只有对应的公钥可以解密 据此,我们可以得到另外两条规则: 如果可以用公钥解密...对私钥和公钥调用save_pkcs1()函数,就得到了私钥和公钥的字节码。...浩克可以去CA证书中心为自己的公钥做认证。CA证书中心用自己的私钥,对浩克的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。 ?...收件人收到浩克签名的邮件后,用CA的公钥解开数字证书,就可以拿到浩克真实的公钥了,然后就能证明"数字签名"是否真的是浩克签署的。 ?

    3.7K40
    领券