ssh登录出现Permission denied, please try again可能的解决方案

news2024/10/6 12:20:20

问题描述

  • 环境:ubuntu 20.04
  • 问题描述:在已经设置免密登录后,ssh登录时(例如ssh localhost)还需要输入密码,并且输入密码后出现下面一系列的报错:
xxx(用户名)@localhost's password: 
Permission denied, please try again.
xxx@localhost's password: 
Permission denied, please try again.
xxx@localhost's password: 
xxx@localhost: Permission denied (publickey,password).

问题排查

首先使用命令ssh localhost -v查看登录时的日志:

OpenSSH_8.2p1 Ubuntu-4ubuntu0.5, OpenSSL 1.1.1f  31 Mar 2020
debug1: Reading configuration data /home/yhy/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to localhost [127.0.0.1] port 22.
debug1: Connection established.
debug1: identity file /home/yhy/.ssh/id_rsa type 0
debug1: identity file /home/yhy/.ssh/id_rsa-cert type -1
debug1: identity file /home/yhy/.ssh/id_dsa type 1
debug1: identity file /home/yhy/.ssh/id_dsa-cert type -1
debug1: identity file /home/yhy/.ssh/id_ecdsa type -1
debug1: identity file /home/yhy/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/yhy/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/yhy/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/yhy/.ssh/id_ed25519 type -1
debug1: identity file /home/yhy/.ssh/id_ed25519-cert type -1
debug1: identity file /home/yhy/.ssh/id_ed25519_sk type -1
debug1: identity file /home/yhy/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /home/yhy/.ssh/id_xmss type -1
debug1: identity file /home/yhy/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
debug1: Remote protocol version 2.0, remote software version OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
debug1: match: OpenSSH_8.2p1 Ubuntu-4ubuntu0.5 pat OpenSSH* compat 0x04000000
debug1: Authenticating to localhost:22 as 'yhy'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ssh-ed25519
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ssh-ed25519 SHA256:KgNVsJSzDmK9KHR57LTY2Xarsui27l0FIm9CY2fUO6o
debug1: Host 'localhost' is known and matches the ED25519 host key.
debug1: Found key in /home/yhy/.ssh/known_hosts:1
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey in after 134217728 blocks
debug1: Will attempt key: /home/yhy/.ssh/id_dsa DSA SHA256:G/HRSEJY5SzAo4ejVp+GVHkIp+UjzMTETklcP2P0ym4 agent
debug1: Will attempt key: /home/yhy/.ssh/id_rsa RSA SHA256:ysy/bD0PakYR49V2kxCs95GxfpHjLifTAPqNJ5yH480 agent
debug1: Will attempt key: /home/yhy/.ssh/id_ecdsa 
debug1: Will attempt key: /home/yhy/.ssh/id_ecdsa_sk 
debug1: Will attempt key: /home/yhy/.ssh/id_ed25519 
debug1: Will attempt key: /home/yhy/.ssh/id_ed25519_sk 
debug1: Will attempt key: /home/yhy/.ssh/id_xmss 
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: /home/yhy/.ssh/id_dsa DSA SHA256:G/HRSEJY5SzAo4ejVp+GVHkIp+UjzMTETklcP2P0ym4 agent
debug1: Authentications that can continue: publickey,password
debug1: Offering public key: /home/yhy/.ssh/id_rsa RSA SHA256:ysy/bD0PakYR49V2kxCs95GxfpHjLifTAPqNJ5yH480 agent
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/yhy/.ssh/id_ecdsa
debug1: Trying private key: /home/yhy/.ssh/id_ecdsa_sk
debug1: Trying private key: /home/yhy/.ssh/id_ed25519
debug1: Trying private key: /home/yhy/.ssh/id_ed25519_sk
debug1: Trying private key: /home/yhy/.ssh/id_xmss
debug1: Next authentication method: password

从日志上看,应该还是配置的问题。

可能的原因

  • 配置问题:如果是ssh配置的问题首先可以尝试这里修改配置。(如果之前从未修改过相关配置,大概率不是这里的问题)
    进行上面的方法后,如果还不行,说明不是配置文件的问题。
  • 文件权限问题:有时文件权限也可能会导致登录失败,按照上述方法查看日志后,如果日志中出现有关文件权限的错误badownership,那么就要考虑.ssh文件夹和authorized_keys文件的权限问题了。
    进入.ssh文件夹下,使用如下命令查看文件夹的信息:
    ll -ld
    
    drwx------ 3 xxx xxx 4096 53 08:41 ./
    
    该目录必须具有上面所示的读(r)、写(w)、执行(x) 权限,如果没有则需要使用命令:
    chmod 0700 /home/your_home/.ssh
    
    修改权限;
    使用命令:
    /home/xxx/.ssh$ ls -ld authorized_keys
    
    -rw------- 1 yhy yhy 564 53 07:08 authorized_keys
    
    查看文件authorized_keys的文件权限。该文件必须有上面所示的读写(rw) 权限,否则使用命令:
    chmod 0600 /home/[username]/.ssh/authorized_keys
    
    修改权限。
  • zsh问题:如果上述方法都不奏效,且你正在/曾经使用zsh那么恭喜你可能遇到了和我相同的问题。这个问题可以通过命令
    service sshd status
    
    查看ssh服务运行状态发现,如果运行日志中有:
    User xxx not allowed because shell /bin/zsh
    
    那么就是由于zsh使用问题导致。我的问题是之前使用过 zsh,卸载后忘记修改默认终端,导致ssh出现问题。
    首先查看系统可用终端:
$ cat /etc/shells

# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/bin/zsh
/usr/bin/zsh

可以看到由于之前设置过该文件,所以里面有bin/zshusr/bin/zsh,如果zsh已经卸载的话,可以删除后面这两行。
通过命令sudo nautilus可以以管理员身份打开文件夹,并且任意对里面的文件进行修改。
接下来查看系统默认shell

$ echo $SHELL
/bin/zsh

可以看到还是因为之前的设置,默认shellzsh。通过命令:

grep xxx(你的用户名) /etc/passwd #这条命令显示/etc/passwd中用户的终端设置

sudo chsh --shell /bin/bash xxx #这条命令修改用户的默认终端为/bin/bash

grep xxx /etc/passwd #再次查看,默认终端已经变成/bin/bash

在用户登录时,系统会根据/etc/passwd中的设置为用户设置默认终端,所以执行完上述操作后重启,再次检查默认终端:

echo $SHELL
/bin/bash

会发现终端已经改成了/bin/bash
这时候再试一试ssh localhost,会发现登录成功:
ssh登录成功截图
问题得到解决。

如果上面的方法都不能解决,就要根据日志和服务状态信息中的其它内容进行排查了。

总结

这个ssh登录失败问题困扰了我很长时间,试了网上很多种方法都没有奏效,最后查看系统服务日志才发现问题所在。以后删除某个软件的时候,一定要把相关的配置还原成为默认的,否则不知道哪天会出问题!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/496412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Makefile教程(入门介绍)

文章目录 前言一、Makefile介绍二、make和Makefile的关系三、编写一个简单的Makefile总结 前言 本篇文章将带大家学习Makefile&#xff0c;Makefile在文件的编译中起到重要作用&#xff0c;在Linux中我们也是经常使用到Makefile&#xff0c;下面我将会带大家学习什么是Makefil…

GNSS定位原理--理解笔记

1、利用“后方交会”原理进行定位。 由已知3个点的坐标以及3个已知点到未知点的距离&#xff0c;就可以计算出未知点的坐标。测量出3个已知点到位置点的距离后&#xff0c;根据三球交会定位&#xff0c;利用方程计算出未知点坐标。 两球交会得到一个圆&#xff0c;三球交会得…

【自学网络安全】从零开始学习网络渗透的核心知识点,助你入门宝典

前言 上周旁听了一个大学学长组织的线上网络安全交流会&#xff0c;里边不乏充斥着各位行业大牛&#xff0c;讲的内容确实精彩&#xff0c;可能对于网络安全经验5年的人来说&#xff0c;是受益匪浅&#xff0c;欢迎程度极高&#xff0c;恨不得跳出屏幕来表示赞同&#xff0c;毕…

初识Spring:如何在Maven工程上搭建Spring框架?

编译软件&#xff1a;IntelliJ IDEA 2019.2.4 x64 操作系统&#xff1a;win10 x64 位 家庭版 Maven版本&#xff1a;apache-maven-3.6.3 Mybatis版本&#xff1a;3.5.6 spring版本&#xff1a;5.3.1 文章目录 Spring系列专栏文章目录一. 什么是Spring&#xff1f;二. 如何搭建S…

基于海鸥算法改进的随机森林分类算法-附代码

基于海鸥算法改进的随机森林分类算法 文章目录 基于海鸥算法改进的随机森林分类算法1.数据集2.RF模型3.基于海鸥算法优化的RF4.测试结果5.Matlab代码6.Python代码 摘要&#xff1a;为了提高随机森林数据的分类预测准确率&#xff0c;对随机森林中的树木个数和最小叶子点数参数利…

Java阶段二Day13

Java阶段二Day13 文章目录 Java阶段二Day13网站SpringSpringFramework核心模块特点使用Spring创建项目对象存储创建对象的方式 IoC容器控制反转依赖注入IoC容器的实现 基于XML管理bean获取bean方式xml配置文件中的标签特殊值处理注入 今天开始是学习后端框架SSM&#xff08;Spr…

元气森林讲出新的“可乐味”故事?

这个五一&#xff0c;一场接一场的音乐节不断拔高假日的声浪。仅成都一市&#xff0c;就开展了298场演出&#xff0c;累计吸引10万余游客市民观看。人潮涌动之间&#xff0c;节日的氛围被拉满。 值得一提的是&#xff0c;音乐节不仅是游客的狂欢&#xff0c;也是消费品牌的盛宴…

【Java|golang】1419. 数青蛙

给你一个字符串 croakOfFrogs&#xff0c;它表示不同青蛙发出的蛙鸣声&#xff08;字符串 “croak” &#xff09;的组合。由于同一时间可以有多只青蛙呱呱作响&#xff0c;所以 croakOfFrogs 中会混合多个 “croak” 。 请你返回模拟字符串中所有蛙鸣所需不同青蛙的最少数目。…

Spring Boot集成ShardingSphere实现读写分离(四) | Spring Cloud 43

一、读写分离 1.1 背景 面对日益增加的系统访问量&#xff0c;数据库的吞吐量面临着巨大瓶颈。 对于同一时刻有大量并发读操作和较少写操作类型的应用系统来说&#xff0c;将数据库拆分为主库和从库&#xff0c;主库负责处理事务性的增删改操作&#xff0c;从库负责处理查询操…

Qt的Model/View结构

Model/View结构 将界面组件与所编辑的数据分离开来&#xff0c;又通过数据源的方式连接起来&#xff0c;是处理界面与数据的一种较好的方式。Qt使用Model/View结构来处理这种关系&#xff0c;Model/View的基本结构如图5-1所示。其中各部分的功能如下。 图1 Model/View基本结构…

ps磨皮插件专用智能磨皮插件 AI算法美颜 提高P图效率

ps的功能这么强大&#xff0c;其美白磨皮方法当然不止一种。本文就给大家细数一下ps美白磨皮常用的几种方法。在各种方法中&#xff0c;插件法的操作更为简单&#xff0c;效果也更好&#xff0c;因此我们还会介绍ps磨皮美白插件哪个好。事不宜迟&#xff0c;一起来看看吧。 一…

Throwable、Error、Exception 运行时异常、非运行时异常

一、Throwable Throwable类&#xff08;可抛出&#xff09;是一个超类&#xff0c;是所有错误和异常根。只有继承于Throwable的类或者其子类才能够被抛出。 有两个子类为Error和Exception&#xff0c;其他的异常类都继承于这两个子类。 三、Error和Exception Error类及其子类…

C++知识点 -- 智能指针

C知识点 – 智能指针 文章目录 C知识点 -- 智能指针一、智能指针的使用及原理1.使用场景2.RAII3.智能指针的设计思想4.智能指针的拷贝问题 二、auto_ptr三、unique_ptr四、shared_ptr1.模拟实现2.shared_ptr的循环引用 五、weak_ptr六、定制删除器七、内存泄漏1.什么是内存泄漏…

PDF转Word免费的软件有哪些?(完整教程版!)

这五种免费PDF转Word的方式&#xff0c;不仅免费&#xff0c;还能准确恢复PDF文件内容&#xff0c;前方高能&#xff0c;快速学习&#xff01; 1.Office直接打开 大厂软件&#xff0c;既能读文档又能转换格式&#xff0c;总让人放心。 转换流程1&#xff1a;在Word的最新版本…

Zero系列三部曲:Zero、Zero-Offload、Zero-Infinity

Zero系列三部曲&#xff1a;Zero、Zero-Offload、Zero-Infinity ZeroIntroductionZero DP流程图详解 Zero-R Zero-OffloadZero- Infinityreference Zero Introduction 以数据并行为例&#xff0c;在训练的时候&#xff0c;首先把模型参数在每个GPU上复制一份&#xff0c;然后…

IP报文解析(TCP、UDP、 ICMP)及代码分享(C++)

一、OSI模型与TCP/IP协议栈 1.1 OSI 7层模型&#xff1a; 应用层&#xff1a; 功能&#xff1a;用户接口&#xff0c;文件传输、电子邮件、虚拟终端、文件服务 设备&#xff1a;网关 协议&#xff1a;HTTP、TFTP、SMTP、FTP、SNMP、DNS、Telnet 表示层&#xff1a; 功能&…

Spring 面试题总结(2023最新版)

文章目录 1、谈谈你对Spring的理解&#xff1f;1.1 发展历程1.2 Spirng的组成1.3 Spring的好处 2、Autowired和Resource的区别2.1 共同点&#xff1a;2.2 Autowired2.3 Resource2.3.1 Resource的装配顺序 3、Spring常用注解3.1、给容器中注入组件3.1.1 包扫描组件标注注解3.1.2…

复数的基本知识

复数的基本知识 文章目录 复数的基本知识前言表示方法百度百科简单来说&#xff1a; 复数的运算 前言 这里只有一点点关于复数的知识&#xff0c;主要是最近的FFT要用到。 表示方法 百度百科 我们把形如 abi &#xff08;a,b均为实数&#xff09;的数称为复数&#xff0c;其…

c++ “拷贝构造,运算符重载”

1.拷贝构造 拷贝构造的意思为&#xff1a;创造一个对象并拷贝另一个对象. 拷贝构造的名字与类的名字一致&#xff0c;参数一般为引用&#xff0c;若类中为无拷贝构造&#xff0c;编译器会自动生成默认拷贝构造函数&#xff0c;这种默认的拷贝构造函数只能拷贝内容&#xff0c;不…

安装并使用JupyterLab

背景 JupyterLab 是用于笔记本、代码和数据的最新的基于 Web 的交互式开发环境。其灵活的界面允许用户配置和安排数据科学、科学计算、机器学习方面的工作流程。模块化设计邀请扩展来扩展和丰富功能。 部署 要在本机搭建 Jupyter Notebook 平台进行机器学习项目&#xff0c;…