当前位置:   article > 正文

使用ssh密钥进行免密登录配置,并且Ssh 信任关系建立后仍需要输入密码 的问题解决_linux ssh登陆时需要密码

linux ssh登陆时需要密码

需求:项目需要使用shell脚本远程连接linux服务器(Ubuntu),本机也是linux系统(centos7.9)。

1、在本地系统上生成ssh密钥对

ssh-keygen -t rsa

按照提示操作,可以选择默认的文件路径和空密码。这将在~/.ssh目录下生成id_rsa(私钥)和id_rsa.pub(公钥)。

2、讲公钥复制到远程服务器

ssh-copy-id -i ~/.ssh/id_rsa.pub ${REMOTE_USER}@${REMOTE_IP}

也可以手动将本地的公钥复制到远程服务器对应用户目录下的.ssh文件夹下的authorized_keys文件(即~/.ssh/authorized_keys 文件),在文件只做追加,不做覆盖,以免影响其他已经建立好的公钥。

此种方式需要注意.ssh文件夹和authorized_keys 文件的权限设置
.ssh 的权限需要为700
authorized_keys 的权限需要为600

  1. chmod 700 ~/.ssh
  2. chmod 600 ~/.ssh/authorized_keys

即可以在本地服务器上通过以下方式连接:

ssh -p 端口 用户名@ip

理论上是可以成功的。

问题:

本人完成后连接的时候还是需要手动输入远程连接服务器的密码的,本人做了以下检查和修改,就好了:

1、检查两个服务器上.ssh文件夹和authorized_keys的权限是否正常,过高过低都不行。

2、vi /etc/ssh/sshd_config下,执行 chmod g-w authorized_keys

3、在Server服务器上加载私钥文件:

在.ssh目录下,执行命令:
ssh-add id_rsa
系统如果提示:Identity added: id_rsa (id_rsa) 就表明加载成功了
下面有几个异常情况处理:
–如果系统提示:could not open a connection to your authentication agent
则需要执行一下命令:
ssh-agent bash
然后再执行上述的ssh-add id_rsa命令。

弄完以上的问题后我就可以免密连接了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/583473
推荐阅读
相关标签
  

闽ICP备14008679号