Linux服务器两台服务器免登录所遇到问题总结

1、背景

最近在做项目迁移的过程,需要把数据库备份文件迁移到一台单独的linux服务器中,需要使用ssh两台服务器免登录,所遇到的问题,做一个记录总结!

2、服务器A中生成公钥

[root@localhost .ssh]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:eLxxERqm1GRduIekxtByYNZhLX39uXVoDFM6DwCChTA root@linkmore2
The key's randomart image is:
+---[RSA 3072]----+
|  E. +B*O*oo.o.  |
|   .o+o**o*o+..  |
|      .=.+.+++ o.|
|       o+ o..++.+|
|      ..S .. .. +|
|       . +     . |
|        .        |
|                 |
|                 |
+----[SHA256]-----+
[root@localhost .ssh]# cd /root/.ssh
[root@localhost .ssh]# ls
id_rsa  id_rsa.pub  known_hosts

3、将公钥传递到服务器B中

[root@linkmore2 .ssh]# ssh-copy-id 192.168.1.243
-bash: ssh-copy-id: 未找到命令

提示找不到命令,于是百度了一通,但都是重新安装openssh,找了好久中找到下面这段:

1.没有安装ssh客户端,可使用命令安装yum install -y openssh-clients*或apt get install openssh-clients*
2.如果是升级openssh服务器版本导致ssh-copy-id程序消失,可是使用以下命令实现ssh-copy-id 的效果
cat ~/.ssh/id_rsa.pub | ssh ,<目标服务器IP地址> "umask 077; mkdir -p .ssh ; cat >> .ssh/authorized_keys"

[root@localhost.ssh]# cat ~/.ssh/id_rsa.pub | ssh 192.168.1.243 "umask 077; mkdir -p .ssh ; cat >> .ssh/authorized_keys"
root@192.168.1.243's password: 
bash: .ssh/authorized_keys: 权限不够

执行之后,提示权限不够,于是在服务器B中查看文件的权限

ssh公钥生效需满足至少下面两个条件:
1) .ssh目录的权限必须是700 
2) .ssh/authorized_keys文件权限必须是600

在服务器B中执行提示不允许的操作

[root@localhost .ssh]# chmod 600 /root/.ssh/authorized_keys
chmod: 更改"/root/.ssh/authorized_keys" 的权限: 不允许的操作
[root@localhost .ssh]# ll
总用量 8
-rw-r--r--. 1 root root 396 3月  21 2020 authorized_keys
-rw-r--r--. 1 root root 515 7月  30 2020 known_hosts

最终发现是Linux系统设置了重要文件的自我保护

在linux系统下有些配置文件是不允许被任何人(包括root)修改的
为了防止被误修改或删除
可以设定该文件的不可修改位:immutable

解决办法 :chattr

防止关键文件被修改:
  chattr +i authorized_keys
如果需要修改文件则:
  chattr -i authorized_keys

[root@linkmore2 .ssh]# cat ~/.ssh/id_rsa.pub | ssh 192.168.1.243 "umask 077; mkdir -p .ssh ; cat >> .ssh/authorized_keys"
root@192.168.1.243's password: 
[root@linkmore2 .ssh]# 

至此配置免密登录成功!

参考资料:https://www.cnblogs.com/zhoading/p/12129258.html

https://blog.csdn.net/weianluo/article/details/76919256

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值