ssh配置远程免密登录以及遇到的各种问题解决方法

Background

首先说下,为什么网上相关经验已经多如牛毛,我还要自己再写呢?
起因是自己配置的时候,去网上找了好多篇经验,很多基本都是一个思路,只是贴步骤,只知其然,不知其所以然,试了好多篇也没成功。
自己总结下,以后自己使用方便。

1、实现目标

  • 当我们需要远程登录一台linux服务器时,通常使用ssh(基于openssh),一般都默认装的有吧,没有先安装这个服务,这个就像向日葵一样。
  • 使用ssh一般默认需要输入密码
  • 我们就是为了实现免密登录,即ssh远程登录某台服务器时不再输入密码。所以我们需要事先和这台服务器配置免密登录。

2、实现思路

  • ssh-keygen是为ssh生成、管理和转换认证密钥的工具,它支持rsa和dsa两种认证密钥,默认rsa加密。
  • 首先需要修改你要远程免密登录的目标服务器的远程连接配置sshd_config
  • 使用ssh-keygen生成公钥和私钥文件(默认在 ~/.ssh 目录,id_rsa.pub文件是公钥文件,另一个id_rsa是私钥文件)。
  • 然后使用ssh-copy-id把生成的公钥拷贝到你要远程免密登录的目标服务器上。就可以了。

3、实现步骤

这里以本机wlf远程连接yl-test为目标服务器(root用户)进行示例说明。

  • 修改目标服务器yl-test的配置文件 /etc/ssh/sshd_config
# 允许root账户远程登录
PermitRootLogin yes

# 关闭严模式
StrictModes no

# 允许密钥登录
RSAAuthentication yes
PubkeyAuthentication yes

# 公钥数据存放文件
AuthorizedKeysFile      .ssh/authorized_keys
  • 重启yl-test的sshd服务
systemctl restart sshd.service
  • 在本机wlf(我这里是window,使用的git bash)生成密钥(四次回车即可)
ssh-keygen
  • 在本机wlf拷贝公钥到目标服务器
ssh-copy-id root@yl-test
  • 在本机wlf远程免密登录测试(直接登录上了,不需要输入密码算是成功)
ssh root@yl-test

4、注意

  • 使用下面的命令可以查看远程连接时的详细信息。
# 在服务器端
tail -f /var/log/secure
# 在客户端
ssh -vvv remote_user@remote_ip
  • 如果在拷贝公钥过程中出现“Agent admitted failure to sign using the key”异常,执行如下命令
ssh-add ~/.ssh/id_rsa
  • 如果遇到文件权限问题,如下图所示,执行下面的命令修改文件权限。
    在这里插入图片描述
chmod 600 /root/
chmod 700 /root/.ssh/
  • 2
    点赞
  • 5
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页
评论

打赏作者

WaiSaa

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值