scp/ssh连接时显示权限错误 Permission denied (publickey). lost connection

本文详细介绍如何通过生成密钥对实现A主机到B主机的SSH免密登录配置过程,包括密钥生成、公钥传输及权限设置等关键步骤,并针对权限拒绝等问题提供了解决方案。

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

        上周遇到诡异的问题,ssh/scp连接另一个linux时显示权限问题,一直没找到合适的解决方案,总结下。

        ssh/scp设置秘钥登录可以省略输入密码的部分,假设需要设置A主机免密登录B主机,设置步骤如下:

        ①在A主机上,ssh-keygen -t rsa  连续按回车(如果你之前生成过秘钥,可能会存在按Y/N的选项,正常选择就好)

        ②在A主机上,使用sz  rz将~/.ssh目录下生成的id_rsa.pub公钥文件放到B主机的~/.ssh/authorized_keys文件下。

                  可以使用 ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.1  如果ssh不能登录的话,那就手动拷贝过去,没有authorized_keys则自己创建一个。这里需要注意一个小细节,注意下换行,有可能复制过去一行内容就变成了三行,那么登录肯定会不成功。最简单的测试方法,使用光标移动,如果复制过去的内容即时显示了三行,但是只能移动一次,那他就是一行内容,是正确的的。

        ③在双端主机上,ls -al ~/.ssh  将~/.ssh权限修改为700,将authorized_keys权限修改为600

        如果此时还报错 Permission denied (publickey). lost connection ,错误我总结了几个:

        一、可以检查一下,上述步骤是否正确,我的错误原因是因为:

        其他这串秘钥是一行内容,拷贝过去自动换行,变成了三行,修改方法就改成一行就可以了。

        二、登录远程主机,将/etc/ssh/sshd_config文件中的PasswordAuthentication no 改为PasswordAuthentication yes,然后重启sshd服务:systemctl restart ssh.service

        三、我遇到一个特别奇怪的问题,我拷贝的.ssh/authorized_keys目录文件,原本有两行公钥,但是每隔大约十分钟就被删除了第二行,也就是说每次拷贝,只能使用一小会,就又得重新拷贝。这个问题还没有解决。

        更新一版-------------------------- 上边那个没有解决的问题已经解决了,是公司安全部门的同步策略,隔一段时间会同步一次。而且如果本地可以连接到B主机,并且用的秘钥登录的话,不用在A主机上再次生成秘钥,直接使用本地的私钥从A登录B即可。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值