不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2021-09-17 23:21  分类:Linux基础  编辑

先看一下这2篇文章:

Linux命令之ssh基本用法

Linux使用ssh公钥实现免密码登录另外一台Linux

一、服务器生成ssh-key

1.生成密钥

ssh-keygen -t rsa

回车后会在 ~/.ssh/ 下生成两个文件:id_rsaid_rsa.pub,这两个文件是成对出现的

2.把自己的公钥放到本机某用户的authorized_keys文件

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

3.重启SSH服务

service sshd restart

4.测试免密登录本机

ssh localhost
# 或
ssh 127.0.0.1

(发现并没有成功,还是需要输入密码)

二、遇到的问题:免密失败,还需输入密码

解决这个问题,需要做二件事:

1、检查AuthorizedKeysFile配置是否启用authorized_keys

$ cat /etc/ssh/sshd_config | egrep AuthorizedKeysFile
#AuthorizedKeysFile .ssh/authorized_keys

解决:

$ sudo vim /etc/ssh/sshd_config

找到这几行,把注释解开:

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile      .ssh/authorized_keys

2、查看系统安全日志,定位问题

执行 sudo cat /var/log/secure 查看系统的安全日志,然后在安全日志中看到SSH登录过程中提示了如下错误:

找到问题:Authentication refused: bad ownership or modes for directory /home/root

后面的目录代表权限不匹配

解决:

(替换成你log中的目录)执行如下:

chmod 700 /root
chmod 700 ./.ssh
chmod 600 ~/.ssh/authorized_keys

PS:SSH进行认证的过程中除了对用户目录有权限要求外,对 .ssh 文件夹和 authorized_keys 文件同样也要限制。

(可选)重启SSH服务

$ service sshd restart

 

 

参考:

https://www.cnblogs.com/7heOne/p/15014164.html

https://www.cnblogs.com/arvin-arvin/p/11468393.html