Ubuntu18.04设置SSH密钥登录

我们一般使用 VSCode 、MobaXterm、PuTTY等 SSH 客户端来远程管理 Linux 服务器。但是,一般的密码方式登录,容易有密码被暴力破解的问题。所以,一般我们会将 SSH 的端口设置为默认的 22 以外的端口,或者禁用 root 账户登录。但是即使是将端口设置为22之外的端口也容易泄露。为了保证服务器安全,此时希望使用密钥方式登录。而且使用秘钥登录能够避免每次登录时反复输入账户密码。

密钥形式登录的原理是:利用密钥生成器制作一对密钥------公钥和私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到服务器。

制作密钥对

使用Ubuntu命令

python 复制代码
ssh-keygen

第一步是保存密钥位置

第二步是为秘钥设置一个密码:如果输入的话以为只即使被人有你的秘钥没有你的密码也是无法登录你的服务器的这样会比较保险但也比较繁琐,直接回车表示不设置密码;

第三步是确认密码,如果没有设置的话可以直接回车。后面的信息是给出秘钥保存的位置 和秘钥信息。

最终我们可以看到在 /home目录下的 time目录中生成了一个隐藏目录 .ssh。里面包含两个密钥文件,id_rsa 为私钥,id_rsa.pub 为公钥。

使用Mobaxterm生成密钥


对,没看错,进度条旁边移动鼠标来增加随机性,加速生成密钥

从上到下分别是:公钥、密码(可以没有)、确认密码(可以没有)、保存私钥

我们保存好公钥、密钥打死都不给

Ubuntu 开启密钥登录

将公钥拷贝放到 /root/(可能有用户名)/.ssh/下,并改名为 authorized_keys

赋予权限

python 复制代码
chmod 600 authorized_keys
chmod 700 ~/.ssh

配置SSH,打开秘钥登录功能

python 复制代码
sudo vim /etc/ssh/sshd_config
python 复制代码
# 开启密钥登录
RSAAuthentication yes
PubkeyAuthentication yes

#root 用户能否通过 SSH 登录
PermitRootLogin yes

验证密钥可以登录后再增加这个,留一条后路

python 复制代码
# 禁用密码登录
PasswordAuthentication no

重启 SSH 服务

python 复制代码
service sshd restart 
or
service ssh restart

可能会出现 /etc/ssh/sshd_config line deprecated option rsaauthentication 警告

在 /etc/ssh/sshd_config 配置文件中,rsaauthentication 选项已被弃用。这意味着你不应该在配置文件中使用这个选项。

代替 rsaauthentication 选项,你可以使用其它选项来指定 RSA 认证的行为。比如说,你可以使用以下选项:

python 复制代码
PubkeyAuthentication yes
#启用公钥认证。
ChallengeResponseAuthentication yes
#启用挑战响应认证。这种认证方式需要使用者回答服务器发送的挑战,比如输入密码。

#此外,你还可以使用以下选项来控制 RSA 认证的行为:

HostbasedAuthentication yes
#启用主机基于认证。这种认证方式需要服务器主机上的公钥来验证客户端的身份。
HostKeyAlgorithms ssh-rsa
#指定使用的主机密钥算法。你可以使用多个算法,用空格分隔。

使用Mobaxterm连接

这个文件指定私钥文件

同样的 在pycharm这样连接

相关推荐
都在酒里34 分钟前
Linux字符设备驱动开发(十):综合实例——I2C传感器 + LED智能控制与进阶指南
linux·运维·服务器·驱动开发·交互
wanhengidc8 小时前
服务器租用有何优点
运维·服务器·安全·web安全
ZGi.ai8 小时前
人工审查节点:让自动化工作流多一步人工把关
运维·人工智能·自动化·人机协同·智能体工作流·人工审查
艾莉丝努力练剑9 小时前
【Linux:文件】Ext系列文件系统进阶
linux·运维·服务器·c++·文件系统·文件io·ext
海市公约9 小时前
Linux核心基础命令与权限管理实战指南
linux·运维·服务器·vim·权限管理·系统监控·命令行
wkd_0079 小时前
Ubuntu 22.04 Samba 连接故障排查记:从“用户名或密码错误”到 NTLM 版本不兼容
linux·运维·ubuntu
企服AI产品测评局9 小时前
Agent适配信创环境实测:企业级自动化如何实现国产操作系统与数据库全兼容?
运维·数据库·人工智能·ai·chatgpt·自动化
mixboot10 小时前
Linux 进程工作目录查看利器:pwdx 命令详解
linux·运维·服务器
盖小雅10 小时前
自动化排班如何破解劳动法合规难题:从规则冲突到可追溯的排班表
大数据·运维·机器学习·自动化
NiceCloud喜云11 小时前
Claude Code Routines 实战:三种触发器跑通云端自动化编码
android·运维·数据库·人工智能·自动化·json·飞书