Linux服务器设置免密登录

Linux服务器设置免密登录

1. 在服务器上生成"密钥对"

shell 复制代码
# 以RSA算法生成密钥对,然后一路回车就行了(如果你没啥讲究的话)
ssh-keygen -t rsa

加密方式

加密算法类型 安全性特点 典型密钥长度 兼容性
Ed25519 高安全性,性能最佳,抗侧信道攻击 256 较新的系统和SSH实现
ECDSA 安全性高,密钥短,效率高 256 主流现代系统
RSA(最常用) 经典可靠,应用广泛 至少 2048位(推荐3072或 4096) 最佳,几乎所有系统都支持
DSA 已不安全,密钥过短 1024

读者可以选择前三个任意一个,我觉得选用RSA最为稳妥

在用户家目录下会生成两个文件id_rsa、id_rsa.pub,这里的id_rsa是私钥,千万不能分发给任何设备。id_rsa.pub是公钥,可以分发给受信任的设备

2. 主机设置

2.1 Windows

用Windows的CMD执行以下命令(快捷键win+R,输入CMD)

shell 复制代码
# 拷贝远程服务器上的公钥文件到本地,格式为 scp [登录用户名]@[服务器IP]:[公钥所存放的绝对路径] [本地路径]
scp pi@192.168.10.23:/home/pi/.ssh/id_rsa.pub ~/.ssh
# 拷贝到本地后,你可以在本地用户下的.ssh文件夹下找到id_rsa.pub文件,然后在.ssh文件夹下创建一个名为config的文件,文件内容如下
Host custom_server_name # 一个易于记忆的别名
 HostName server_ip  # 服务器的实际 IP 地址或域名
 User username       # 用于登录服务器的用户名
 IdentityFile ~/.ssh/id_rsa  # 指定私钥文件在 Windows 上的路径

保存文件!重新打开CMD,不出意外的话就可以顺利免密登录服务器了

2.2 Linux 或 Mac

用终端执行以下命令

shell 复制代码
# 拷贝远程服务器上的公钥文件到本地,格式为 scp [登录用户名]@[服务器IP]:[公钥所存放的绝对路径] [本地路径]
scp pi@192.168.10.23:/home/pi/.ssh/id_rsa.pub ~/.ssh
# 创建authorized_keys文件,并把id_rsa.pub中内容追加进去
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 修改权限
chmod 600 ~/.ssh/authorized_keys
# 修改sshd_config配置文件
vim /etc/ssh/sshd_config
# 修改内容如下
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# 保存退出后,重启ssh服务
systemctl restart sshd

3.测试

使用CMD或终端连接远程服务器,如果不需要输入密码,则成功了

shell 复制代码
ssh pi@192.168.10.23
相关推荐
fangzhanpeng1685 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心7 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552713 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u01030552714 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝15 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u01030552715 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552716 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552718 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552719 天前
Java I/O核心操作实战
人工智能·1024程序员节
u01030552720 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节