编辑
2020-03-23
DevOps
00
请注意,本文编写于 1503 天前,最后修改于 654 天前,其中某些信息可能已经过时。

目录

1.查看日志
2.配置文件问题
远程主机
本地主机
3.密钥问题
4.权限问题
5.参考文献

最近新加了几个git仓库,重新设定了一下几个ssh,结果博客部署的时候j就突然需要密码了,以前都是不需要的,明明设置好了ssh密钥的啊,百思不得其解。所以经过几番折腾,进展如下:

1.查看日志

对于ubuntu来说,查看/var/log/auth.log即可 根据日志的内容针对性解决,如果无明显错误,再去探究

2.配置文件问题

远程主机

对于远程主机,ssh配置文件在/etc/ssh/sshd_config,主要有用的如下:

shell
#禁用root账户登录,如果是用root用户登录请开启 PermitRootLogin yes # 是否让 sshd 去检查用户家目录或相关档案的权限数据, # 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。 # 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入 StrictModes no # 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。 # 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys # 有了证书登录了,就禁用密码登录。 PasswordAuthentication no

重启服务:service sshd restart

本地主机

对于本地主机,配置文件在/etc/ssh/ssh_config中,主要是:

shell
Host 别名(后面可直接通过[ssh 别名]进行登录) HostName IP Port 端口 User 用户名 IdentityFile 自己的私钥

3.密钥问题

对于自制的密钥对,想要生效,私钥是放在本地主机里的,要想要让私钥生效,有两种方式:

  • 1.直接在 /etc/ssh/ssh_config 中添加字段制定私钥
  • 2.直接用ssh-add 私钥位置,添加私钥(最常用)

4.权限问题

很多时候还是不行是因为权限的不得劲,注意如下:

  • 远程主机的,需要登录的用户的home目录~/.ssh目录~/.ssh/authorized_keys文件,权限必须是700或者755
  • 本地主机的私钥,权限不能太开放,最好是600

奇幻问题 当我做完了以上这些的时候,发现我ssh用root登陆ok免密码,用git用户就要密码,经过排查我发现: 在sshd_config文件中的authorized_keys字段必须用相对地址指定.ssh目录里的文件 我就是因为直接指定了root目录里的文件,所以我用git用户ssh的时候就没有权限了,所以还是要密码

5.参考文献

ssh|为什么通过公钥进行授权后仍然需要密码才能登陆? SSH无密钥登陆 与 配置公钥后仍需要输入密码的解决方案 ssh配置config快速登录服务器

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:mereith

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!