专栏首页运维之美零配置,一条指令助你实现 SSH 免密登陆和安全加固

零配置,一条指令助你实现 SSH 免密登陆和安全加固

前言

对于新入手或重装后的 VPS 配置密钥登录需要创建 ~/.ssh 目录、把公钥写入到 ~/.ssh/authorized_keys、设置权限、禁用密码登录等操作,虽然都是很简单的基础操作,但过程麻烦且枯燥:

mkdir -p ~/.ssh
curl -fsSL https://github.com/P3TERX.keys >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
sudo sed -i "s@.*\(PasswordAuthentication \).*@\1no@" /etc/ssh/sshd_config
sudo service sshd restart

SSH 密钥一键配置脚本是一套用于简化 SSH 密钥配置过程的解决方案。使用它以上操作只需要一行命令:

bash <(curl -fsSL git.io/key.sh) -g P3TERX -d

语法及选项说明

bash <(curl -fsSL git.io/key.sh) [选项...] <参数>
  • -o - 覆盖模式,必须写在最前面才会生效
  • -g - 从 GitHub 获取公钥,参数为 GitHub 用户名
  • -u - 从 URL 获取公钥,参数为 URL
  • -l - 从本地文件获取公钥,参数为本地文件路径
  • -p - 修改 SSH 端口,参数为端口号
  • -d - 禁用密码登录

使用方法

生成 SSH 密钥对

如果没有密钥需要先生成,执行以下命令后一路回车即可。

ssh-keygen -t ecdsa -b 521

TIPS: 此方法适用于 Windows 10 (1803后)的 PowerShell 或 WSL,Linux 发行版和 macOS 自带的终端,但不仅限于这些环境。 科普: 521 位的 ECDSA 密钥比起 RSA 密钥更安全且验证速度更快。

操作完后会在 ~/.ssh 目录中生两个密钥文件,id_ecdsa 为私钥,id_ecdsa.pub 为公钥。公钥就是我们需要安装在远程主机上的。

科普:~符号代表用户主目录,俗称家目录。其路径与当前登陆的用户有关,在 Linux 中普通用户家目录的路径是/home/用户名,而 root 用户是/root。Windows 10 中路径是C:\Users\用户名。在 macOS 中路径是/Users/用户名

安装公钥

从 GitHub 获取公钥

在 GitHub 密钥管理页面 添加公钥,比如我的用户名是 P3TERX,那么在主机上输入以下命令即可:

bash <(curl -fsSL git.io/key.sh) -g P3TERX

从 URL 获取公钥

把公钥上传到网盘,通过网盘链接获取公钥:

bash <(curl -fsSL git.io/key.sh) -u https://p3terx.com/key.pub

从本地文件获取公钥

通过 FTP 的方式把公钥传到 VPS 上,然后指定公钥路径:

bash <(curl -fsSL git.io/key.sh) -f ~/key.pub

覆盖模式

使用覆盖模式(-o)将覆盖 /.ssh/authorized_keys 文件,之前的密钥会被完全替换掉,选项必须写在最前面才会生效,比如:

bash <(curl -fsSL git.io/key.sh) -o -g P3TERX

或者

bash <(curl -fsSL git.io/key.sh) -og P3TERX

禁用密码登录

在确定使用密钥能正常登录后禁用密码登录:

bash <(curl -fsSL git.io/key.sh) -d

修改 SSH 端口

把 SSH 端口修改为 2222

bash <(curl -fsSL git.io/key.sh) -p 2222

一键操作

安装密钥、修改端口、禁用密码登录一键操作:

bash <(curl -fsSL git.io/key.sh) -og P3TERX -p 2222 -d

本文转载自:「 P3TERX ZONE 」,原文:http://t.cn/A6tjJeR0 ,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

本文分享自微信公众号 - 运维之美(Hi-Linux),作者:P3TERX

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-03-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SSH 操作实践指南

    那么,以后每次在电脑上使用 SSH 论证的时候,都会提示你输入秘钥密码,非常麻烦。

    雪梦科技
  • 做一次黑客,入侵一次服务器

    前两天刚买了个腾讯服务器(CVM),这次登陆上去的时候特别卡,通过top发现负载特别高,因为是刚搭建的环境,也没有运行什么应用程序,所以我觉得这有点不正常。

    叫我阿柒啊
  • 如何正确配置 Ubuntu 14.04 服务器?

    本文将介绍在云厂商购买 Ubuntu 服务器之后,为了确保服务器的安全,开发者应该要做的一些配置。完成本文的操作之后,服务器的安全性将得到更好的保障。

    EarlGrey
  • 系统安全之SSH入侵的检测与响应

    作为系列文章的第一篇https://www.freebuf.com/es/193557.html 介绍了攻防系统的整个环境和搭建方法,按照这篇文章应该是可以把整...

    FB客服
  • Linux 系统安全与优化配置

    Linux 系统安全与优化配置 Linux 系统安全问题 ---- 目录 1. Openssh 安全配置 1.1. 禁止root用户登录 1.2. 限制SSH验...

    netkiller old
  • Linux 系统安全与优化配置

    Linux 系统安全与优化配置 Linux 系统安全问题 ---- 目录 1. Openssh 安全配置 1.1. 禁止root用户登录 1.2. 限制SSH验...

    netkiller old
  • SSH随笔

    简单说,SSH是一种网络协议,用于计算机之间的加密登录。SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。这里说的实现是OpenSSH。

    浩Coding
  • Linux 系统安全与优化配置

    Linux 系统安全与优化配置 目录 1. Openssh 安全配置 1.1. 禁止root用户登录 1.2. 限制SSH验证重试次数 1.3. 禁止证书登陆 ...

    netkiller old
  • 用Python远程登陆服务器的最佳实践

    在使用 Python 写一些脚本的时候,在某些情况下,我们需要频繁登陆远程服务去执行一次命令,并返回一些结果。

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券