Linux免密登录

免密登录

概述

  1. 客户端生成公私钥
  2. 上传公钥到服务器
    1. id_rsa (私钥)
    2. id_rsa.pub (公钥)
    3. id_ecdsa (私钥)
    4. id_ecdsa.pub (公钥)
  3. 权限配置
  4. SSH 文件配置

客户端生成公私钥

生成公私钥

1
2
3
# host21 执行,一直回车 
ssh-keygen -t ecdsa
# ssh-keygen -t rsa -C "email@domain.com" -f filename

分发到目标服务器

直接分发

1
2
# 分发到服务器
ssh-copy-id -i ~/.ssh/id_ecdsa.pub root@192.168.2.21

拷贝写入

客户机执行

1
2
# 或者拷贝到服务器
scp ~/.ssh/id_ecdsa.pub root@192.168.2.22:/home/root/.ssh/id_ecdsa_21.pub
1
2
# 添加到免密登录:192.168.2.22 执行
cat ~/.ssh/id_ecdsa_21.pub >> ~/.ssh/authorized_keys

权限配置

  • 服务器权限
1
2
3
sudo chmod 600 ~/.ssh/*
sudo chmod 700 ~/.ssh
sudo chmod 775 ~/

SSH 文件配置

  • 服务器的秘钥验证
1
sudo vim /etc/ssh/sshd_config
  • 服务器配置修改
1
2
3
4
5
# 设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。)
StrictModes no
# 允许 root
PermitRootLogin yes
PubkeyAuthentication yes
  • 服务器重启
1
sudo systemctl restart sshd.service
  • 客户端测试
1
ssh root@192.168.2.21

本文地址: https://github.com/maxzhao-it/blog/post/9556/