最近新加了几个git仓库,重新设定了一下几个ssh,结果博客部署的时候j就突然需要密码了,以前都是不需要的,明明设置好了ssh密钥的啊,百思不得其解。所以经过几番折腾,进展如下:
对于ubuntu
来说,查看/var/log/auth.log
即可
根据日志的内容针对性解决,如果无明显错误,再去探究
对于远程主机
,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
中,主要是:
shellHost 别名(后面可直接通过[ssh 别名]进行登录) HostName IP Port 端口 User 用户名 IdentityFile 自己的私钥
对于自制的密钥对,想要生效,私钥是放在本地主机里的,要想要让私钥生效,有两种方式:
- 1.直接在 /etc/ssh/ssh_config 中添加字段制定私钥
- 2.直接用
ssh-add 私钥位置
,添加私钥(最常用)
很多时候还是不行是因为权限的不得劲,注意如下:
- 远程主机的,需要登录的用户的
home目录
、~/.ssh目录
、~/.ssh/authorized_keys文件
,权限必须是700
或者755
- 本地主机的
私钥
,权限不能太开放,最好是600
奇幻问题 当我做完了以上这些的时候,发现我ssh用root登陆ok免密码,用git用户就要密码,经过排查我发现: 在sshd_config文件中的authorized_keys字段必须用相对地址指定.ssh目录里的文件 我就是因为直接指定了root目录里的文件,所以我用git用户ssh的时候就没有权限了,所以还是要密码
ssh|为什么通过公钥进行授权后仍然需要密码才能登陆? SSH无密钥登陆 与 配置公钥后仍需要输入密码的解决方案 ssh配置config快速登录服务器
本文作者:mereith
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!