如何对某个用户配置免密:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 0600 ~/.ssh/authorized_keys

根据上述操作生成相关密钥后,执行ssh localhost,依然需要输入密码,排查问题:

先检查ssh配置文件,包括客户端配置文件ssh_config和服务端配置文件sshd_config

客户端配置文件路径:/etc/ssh/ssh_config

文件内容:

Host *

GSSAPIAuthentication yes

# If this option is set to yes then remote X11 clients will have full access

# to the original X11 display. As virtually no X11 client supports the untrusted

# mode correctly we set this to yes.

ForwardX11Trusted yes

# Send locale-related environment variables

SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES

SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT

SendEnv LC_IDENTIFICATION LC_ALL LANGUAGE

SendEnv XMODIFIERS

# 如果是使用dsa生成密钥的话,那么必须要配置上这个参数

PubkeyAcceptedKeyTypes +ssh-dss

服务端配置文件路径:/etc/ssh/sshd_config

文件内容:

HostKey /etc/ssh/ssh_host_rsa_key

#HostKey /etc/ssh/ssh_host_dsa_key

HostKey /etc/ssh/ssh_host_ecdsa_key

HostKey /etc/ssh/ssh_host_ed25519_key

SyslogFacility AUTHPRIV

# Authentication:

# 配置允许root用户登录,yes

# 如果不允许root登录,需要把它改为no

PermitRootLogin yes

AuthorizedKeysFile .ssh/authorized_keys

PasswordAuthentication yes

GSSAPICleanupCredentials no

X11Forwarding yes

UsePrivilegeSeparation sandbox

UseDNS no

# Accept locale-related environment variables

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES

AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT

AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE

AcceptEnv XMODIFIERS

# override default of no subsystems

Subsystem sftp /usr/libexec/openssh/sftp-server

# Example of overriding settings on a per-user basis

#Match User anoncvs

# X11Forwarding no

# AllowTcpForwarding no

# PermitTTY no

# ForceCommand cvs server

KerberosAuthentication no

PubkeyAuthentication yes

UsePAM yes

AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys

AuthorizedKeysCommandUser nobody

GSSAPIAuthentication yes

ChallengeResponseAuthentication yes

# 如果使用dsa生成密钥的话,则必须

PubkeyAcceptedKeyTypes +ssh-dss

KexAlgorithms diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521

服务端和客户端按这个配置文件来配是没有问题的,亲测。

PubkeyAcceptedKeyTypes +ssh-dss 是我后加上的参数,但是它并不是之前免密无效的原因,因为我之前生成的密钥使用的是rsa而不是dsa。

所以配置文件这块是没有问题的。

再排查权限问题

首先排查密钥文件authorized_keys的权限,它的权限严格要求是600,因为在步骤1中做了这个操作,所以它的权限是正确的;

接着排查/home/xxx/.ssh目录的权限,它的权限须是700,检查后发现权限是正常的700;

再接着用户主目录的权限,ll /home 查看主目录/home/xxx的权限,发现它的权限是777,然后我把他改小点,改为755,然后再通过ssh localhost测试,这时免密就成功了。

所以之前免密失效的根本原因还是权限的问题,ssh不允许用户的主目录和.ssh目录以及authorized_keys文件的权限开放得太大。

linux免密后还是要输密码,ssh配置免密后依然需要输入密码的问题解决及排查过程...相关推荐

  1. ssh 免密码登录(设置后仍需输密码的原因及解决方法)

    ssh 免密码登录(设置后仍需输密码的原因及解决方法) 参考文章: (1)ssh 免密码登录(设置后仍需输密码的原因及解决方法) (2)https://www.cnblogs.com/guanyf/p ...

  2. ssh 免密_大数据时代:SSH如何免密码登录?

    Hadoop集群是由许多的节点服务器组成的,当我们启动hadoop集群时,hadoop的Namenode需要连接并且管理这些节点服务器(主要是DataNode). 此时系统会要求用户输入密码,提示内容 ...

  3. gitlab 页面添加不带密码的sshkey后,git clone git@xxx.com:xx.git 仍提示需要输入密码的问题解决

    gitlab 页面添加 sshkey后,git clone git@xxx.com:xx.git 任然提示需要输入密码的问题解决.解决debug1: send_pubkey_test: no mutu ...

  4. 电脑唤醒后不显示输密码框

    目录 前言 一.问题描述 二.解决方法 1.现有的方法 2.我的方法 总结 前言 电脑打开后不出现密码输入对话框,一直卡着进不了系统. 一.问题描述 中午出去吃饭没有关电脑,走之前屏幕是在工作状态,回 ...

  5. SSH配置免密登录方法

    转载自https://blog.csdn.net/jeikerxiao/article/details/84105529 1.客户端生成公私钥 本地客户端生成公私钥:(一路回车默认即可) ssh-ke ...

  6. ssh配置免密登录、scp文件传输免密

    使用ssh相关命令,如scp等的时候,输入密码是很麻烦的事,而且有时候需要做自动化操作,这个时候还要人手动输入密码就没法玩了,我们可以通过配置rsa私钥和公钥的方式来免密ssh登录. 也可以直接使用s ...

  7. 【SSH】SSH 免密码登录配置|Secure Shell 免密认证登录|linux 生成密钥

    目录 LINUX SSH免密登录 即看即用 详细说明 免密登录原理 Secure Shell 免密认证登录 linux 生成密钥 windows 生成密钥 目录 LINUX SSH免密登录 即看即用 ...

  8. ssh设置免密登录后登录仍需密码可能的原因,以及 ssh 出问题或的调试方法

    免密登录失败 ssh设置免密登录后登录仍需密码可能的原因,home 路径下的对应用户权限不对,或者 .ssh 文件夹权限不对,/home/$user 和 /home/$user/.ssh 路径必须是 ...

  9. linux 配置免密码登录,Linux - 配置SSH免密登录 - “ssh-keygen”的基本用法

    1 什么是SSH 引用百度百科的说明: SSH 为 Secure Shell的缩写,由 IETF 的网络小组(Network Working Group)所制定:它是建立在应用层基础上的安全协议. S ...

最新文章

  1. iOS高级面试之NSNotificationCenter是同步操作还是异步操作
  2. 你知道现在的.net是什么样的吗,一张图告诉你
  3. IOC的理解,整合AOP,解耦对Service层和Dal层的依赖
  4. 全站仪数据导入电脑_三鼎762R系列全站仪的SD卡传输教程
  5. [蓝桥杯][2017年第八届真题]对局匹配
  6. java实现资源监视器_实现Java监视的12个步骤程序存在缺陷
  7. html如何让图片跟字体重叠,CSS设置图片与文字的间距
  8. Jmeter插件-dubbo
  9. mvc 调用其他控制器方法session丢失_Java从入门到放弃;MVC 模式
  10. redis 命令行 操作
  11. php 监听redis,swoole如何监听redis数据
  12. matlab实现马尔可夫链,马尔可夫链matlab源码
  13. vue使用Echarts绘制自己股票K线图,包含数据接口
  14. 操作系统——并发之锁
  15. 【Linux】常见错误 “cp: omitting directory”解决办法
  16. java微信二维码登录
  17. 红光光浴到底有没有用#大健康#红光光浴#红光#种光光学
  18. office365服务器没有响应,Win10安装Office365时电脑无响应的原因和解决方案
  19. sml基本语法(二)
  20. spark的数三角形算法_spark graphx 图计算

热门文章

  1. 大前端的自动化工厂(2)—— SB Family
  2. Java虚拟机------垃圾收集器
  3. Python 基础知识学习笔记——OpenCV(1)
  4. java 运行管理-基础
  5. LeetCode-114: 二叉树展开为链表
  6. 强化学习ppt_强化学习和最优控制的十个关键点81页PPT汇总
  7. bool函数_PHP变量类型测试函数的使用:一、is_bool的用法
  8. Jsp页面的几种传参方式
  9. python多线程详解_Python多线程详解
  10. linux top cpu瓶颈,Linux命令----分析CPU的瓶颈