惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
aimingoo的专栏
aimingoo的专栏
IT之家
IT之家
G
Google Developers Blog
爱范儿
爱范儿
博客园 - 司徒正美
Recent Announcements
Recent Announcements
The Register - Security
The Register - Security
J
Java Code Geeks
The Cloudflare Blog
M
MIT News - Artificial intelligence
Apple Machine Learning Research
Apple Machine Learning Research
Microsoft Security Blog
Microsoft Security Blog
博客园 - Franky
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
Vercel News
Vercel News
宝玉的分享
宝玉的分享
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
B
Blog
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
T
Troy Hunt's Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
H
Hacker News: Front Page
H
Help Net Security
S
Security @ Cisco Blogs
V
V2EX
Security Archives - TechRepublic
Security Archives - TechRepublic
Stack Overflow Blog
Stack Overflow Blog
O
OpenAI News
L
LINUX DO - 最新话题
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
Secure Thoughts
Help Net Security
Help Net Security
F
Full Disclosure
博客园 - 叶小钗
The Hacker News
The Hacker News
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Jina AI
Jina AI
K
Kaspersky official blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
Vulnerabilities – Threatpost
P
Privacy International News Feed
Scott Helme
Scott Helme

Razeen`s Blog

Let's Encrypt 推出 Gen Y 根证书架构:揭示 Web PKI 的五大未来趋势 通过 Wi-Fi 自动备份你的 iPhone 到 Nas 管理培训感悟:从技术视角看管理之路 UPS 一拖多:保护你的 NAS 和 Linux 服务器 从影音中心到 AI 助手:我的50款 Homelab 服务清单 从SSL证书有效期将缩短到47天聊开去 部署一个自己的 Running Page 谈谈特斯拉 Model Y 用车一年的感受和费用分析 弃用 Disqus 评论,使用自建 Waline 使用 Prometheus 和 Grafana 搭建你的证书监控面板 服务器迁移记:一次磁盘换板引发的Linux分区与挂载的学习 改善信息来源, 利用 RSS 高效获取资讯 (RSShub + Reeder5 + WeWe RSS) 多种 Docker 镜像拉取解决方案与实践 App分享 | AppCleaner - Mac上的卸载神器 Azure OpenAI API 申请和使用 如何开通 OneKey 虚拟信用卡,并充值消费 如何拥有一个可长期在国内使用的国外手机号码 分享开通 ChatGPT Plus 过程 如何开通 Depay 虚拟信用卡,并充值消费 如何开通欧易Web3钱包, 交易入账 如何5分钟内1块钱注册 ChatGPT 如何注册美区的 Apple ID (2023年/无需科学上网) NAS折腾记(11): NASTool3.0体验和降级 NAS折腾记(10): Docker版本的NASTool配置 NAS折腾记(9): NASTool与微信交互,微信发送消息远程下载电影【多图】 NAS折腾记(8):群晖安装 NASTool 实现影音半自动化【多图】 内网穿透(2):Tailscale 组网实现内网穿透,操作简单,无成本 内网穿透(1):总结了11中内网穿透的方式,总有一种适合你 NAS折腾记(7):从零开始设置(黑)群晖系统 NAS折腾记(6):黑群晖系统安装好后怎么洗白? NAS折腾记(5):群晖硬盘休眠设置与分析 NAS折腾记(4): 20分钟手把手带你完美安装 DS918+ 黑群晖7.1.1 NAS折腾记(3):NAS 装机 NAS折腾记(2):B360-ITX 双M.2 双2.5G网口 6 SATA主版 开箱 NAS折腾记(1):328元的4盘位Nas机箱开箱 Openwrt + Clash 全局科学上网 Newifi3 刷入 OpenWrt 固件 v21.02 利用 Markdown 画一些流程图、时序图、甘特图等 Homelab(8): 搭建自用 Gitlab 与 Docker 仓库 Nginx Tcp 转发保留客户端真实 IP (PROXY Protocol) Homelab (7):IPSec VPN(基于证书认证)客户端设置 Homelab (6): 基于自签发证书的 IPSec VPN 搭建 Homelab (5): DDNS 动态域名解析 Homelab (4): Linux 服务器基础环境准备 Homelab (3): 整体网络与基础硬件介绍 Go学习笔记(十)老项目迁移 go module 大型灾难记录 Github Actions 初体验之自动化部署 Hexo 博客 记一次 Nginx DNS 缓存导致转发问题 Homelab (2): 电信悦me网关修改桥接模式,路由器拨号 Homelab (1):5分钟上手黑群晖 NAS 终极 Bash 脚本指南 Typora 自动上传图片到七牛云 Ubuntu 20.04 LTS 有线网卡驱动安装 折腾 Ubuntu 20.04 LTS 开发环境 Go学习笔记(九) 计时器的生命周期[译] 利用 git hook 规范你的代码与 commit message 规范 git commit message 与自动化版本控制 超详细 vim 配置 (with MacVim) Golang 中的 RESTful API 最佳实践 折腾服务器(开篇) 我的第一台个人服务器 Newifi3 实现低成本家庭级科学上网 Go学习笔记(八) | 使用 os/exec 执行命令 如何用 Go 调用 Windows API Mac OS 自动根据 WI-FI 名字改变网络位置 关于 Docker 清理 MIME Types 速查表 Go学习笔记(七) | 理解OAuth 2.0并实现一个客户端 我又又又把博客迁移了 Go学习笔记(六) | 使用swaggo自动生成Restful API文档 Go学习笔记(五) | 使用代码片段(snippets)提高编码效率 书单 - 2018 IPFS 初体验,利用 IPFS 托管你的静态网站 记一次 PostgreSQL LIKE 索引优化,联合字段 LIKE 查询优化。 Disqus 添加有趣的 Reactions 的功能 TLS 1.3 详解 (RFC 8446解读) gRPC在Go中的使用(三)gRPC实现TLS加密通信与流模式 gRPC在Go中的使用(二)gRPC实现简单通讯 gRPC在Go中的使用(一)Protocol Buffers语法与相关使用 CentOS 安装 tshark 抓包工具 Go学习笔记(四) | win上使用VSCode搭建Go开发环境 日常 Postgres 数据库点滴记录 简单了解 PKCS 规范 美食篇 | DIY戚风蛋糕(烤箱做蛋糕) Go学习笔记(三) | 怎么写Go基准测试(性能测试) TLS1.3正式更新,为Nginx添加TLS1.3的支持 一次诡异的数据库删除 GitHub Pages自定义域名开启HTTPS 证书透明度是什么?它是怎么工作的? Go学习笔记(二) | 我对 recover 的一点误解 搭建证书透明度(certificate-transparency)日志服务之从入门到放弃 修复远程登陆 Centos 时,出现 UTF-8 Warning HTTPS篇之SSL握手过程详解 Go学习笔记(一) | postgres与golang点点滴滴 AWS 命令行界面(aws-cli)从安装到快速上手 数字证书分类及怎么区分各类数字证书 常用 linux 命令小结(一)文件目录操作 云服务器搭建 hexo 博客,git hooks自动更新 Golang CGO Mac 交叉编译 Windows 使用 goose 让数据库迁移更加轻松 开始使用Ghost
SSH 免密登陆, SSH Config 配置
2017-08-31 · via Razeen`s Blog

最近又在捣腾捣腾自己的博客,作死的将阿里云磁盘重置了一下。需要重新配置一个SSH登陆的秘钥,发现忘了该怎么开始,这里整理下一些日常用的SSH相关姿势==。

SSH是什么

SSH (Secure Shell) 简单来说就是一种用于计算机之间加密登陆的网络协议。使用SSH协议登陆到另外一台计算机,能有效的保证远程管理过程中的数据安全。

SSH免密登陆

生成RSA秘钥对

SSH相关的秘钥一般都存放在~/.ssh目录下面。如果你和我一样~/.ssh目录存在以下的两个文件:

  • id_rsa
  • id_rsa.pub

这就说明RSA秘钥对已经有个这个步骤你可以直接跳过。如果没有,继续。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxx/.ssh/id_rsa):  # 回车即可
# 如果没有~/.ssh目录 这里会显示Created directory '/root/.ssh'.
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:xxxxxxxxxxxxxxxxxx xxx@xxx.local
The key's randomart image is:
+---[RSA 2048]----+
|      .....      |
+----[SHA256]-----+

到这里,秘钥对已经生成。

在服务器安装授权秘钥

1.根据公钥生成授权秘钥。

$ cat ~/.ssh/id_rsa.pub >> authorized_keys

2.上传授权秘钥到服务器。

$ scp authorized_keys root@razeen.me:~ 
root@razeen.me's password:
authorized_keys             100%  748    21.5KB/s   00:00
  1. 登陆服务器,配置authorized_keys。
$ ssh root@razeen.me
root@razeen.me's password:

# 登陆上去后 我们可以看到刚刚上传的文件
[root@xxxx ~]$ ls
authorized_keys

# 新建 ~/.ssh目录,将authorized_keys放到该目录下。
[root@xxxx ~]$ mkdir .ssh
[root@xxxx ~]$ mv authorized_keys .ssh/

# 给秘钥授权
[root@xxxx ~]$ chmod 600 .ssh/authorized_keys
[root@xxxx ~]$ chmod 700 .ssh/

4.设置SSH,打开密钥登录功能。

相关的SSH设置,在/etc/ssh/sshd_config文件内。

[root@xxxx ~]$vi /etc/ssh/sshd_config

# 将下面两行放出
RSAAuthentication yes  # Centos8中过时
PubkeyAuthentication yes

# 如果你和我一样 不想用密码登陆 将这一行改为no
PasswordAuthentication no

修改完后,保存文件,重启SSH服务。

[root@xxxx ~]$ service sshd restart

最后,验证一下。如果和我一样直接登陆成功,恭喜你免密登陆成功了。

$ ssh root@razeen.me
Last login: Tue Sep 26 21:05:48 2017 from 218.82.26.206

Welcome to aliyun Elastic Compute Service!

[root@xxxx ~]#

修改SSH端口

修改SSH配置文件

我们常用的SSH端口是22,为了提高安全性,你可以将其修改到一个不常用的端口。

同样是修改/etc/ssh/sshd_config文件。 我们能看到

$ vi /etc/ssh/sshd_config

#
#Port 22   
#ListenAddress 0.0.0.0
#ListenAddress ::

# 例如 修改后
Port 54321

将Port注释删掉,修改22为你想要的端口号,注意不要与常用的端口后冲突。

然后重启SSH服务。

CentOS8 在你执行上面命令启动会报错,需要申明端口类型。

semanage port -a -t ssh_port_t -p tcp 54321

放行端口

当然这还不够,还需放行刚刚修改的SSH端口。

修改安全组

我用的阿里云只需要在在安全组规则中的公网入网方向添加该端口范围即可,如下图所示:

iptable 放行

如果你用的其他的也许还需修改iptable. 操作如下:

vi /etc/sysconfig/iptables

# 默认如下:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

# 修改22为你的SSH端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 54321 -j ACCEPT
firewall 放行

如果你是Centos8, 开启了firewall,那可能需要修改firewall。

# 放行端口
firewall-cmd --zone=public --add-port=54321/tcp --permanent 
# 重启
firewall-cmd --reload

到这里,端口就愉快的修改完成了。 你可以这么登陆ssh -P 54321 root@xxx,如果你还觉得麻烦,下面还有更简单的方法。

SSH相关技巧

别名登陆

你还在为每次SSH, 要输入长长的用户名而烦恼吗?

你还在为每次SSH, 要带这长长的参数而烦恼吗?

你还在为每次SCP, 依然要带这长长的参数而烦恼吗?

你还在犹豫什么, 别名登陆给你解决烦恼。

首先你需要在你的~/.ssh目录下添加文件名为config的文件,文件内容如下:

# config
Host razeen                      # 别名
    HostName razeen.me           # 主机地址 (可以是IP)
    User root                    # 用户名
    Port 54321                   # ssh端口
    # IdentityFile ~/.ssh/id_rsa # 认证文件

接下来你直接使用$ ssh razeen就可以登陆服务器了,使用scp file.xxx razeen:/xxx/xxx就可你将本地的file.xxx文件拷到服务器/xxx/xxx目录下, 是不是方便了很多。

参考

[1] https://deepzz.com/post/how-to-setup-ssh-config.html#toc_4