feat:add_ssh

This commit is contained in:
dichgrem
2025-08-27 20:44:21 +08:00
parent 77ffb7cc53
commit 8fe0f821f3
62 changed files with 845 additions and 271 deletions

195
content/Network-ssh.md Normal file
View File

@@ -0,0 +1,195 @@
+++
title = "网络艺术:SSH使用指南"
date = 2025-05-02
[taxonomies]
tags = ["Network"]
+++
前言 SSHSecure Shell 的缩写)是一种网络协议,用于加密两台计算机之间的通信,并且支持各种身份验证机制。
<!-- more -->
## 历史
1995年芬兰赫尔辛基工业大学的研究员 Tatu Ylönen 设计了 ``SSH 协议的第一个版本(现称为 SSH 1``,同时写出了第一个实现(称为 SSH1
当时,他所在的大学网络一直发生密码嗅探攻击,他不得不为服务器设计一个更安全的登录方式。写完以后,他就把这个工具公开了,允许其他人免费使用。
SSH 可以替换 rlogin、TELNET、FTP 和 rsh 这些不安全的协议所以大受欢迎用户快速增长1995年底已经发展到五十个国家的20,000个用户。SSH 1 协议也变成 IETF 的标准文档。
1995年12月由于客服需求越来越大``TatuYlönen就成立了一家公司SCS专门销售和开发SSH``。这个软件的后续版本,逐渐从免费软件变成了专有的商业软件。
SSH 1 协议存在一些安全漏洞,所以``1996年又提出了 SSH 2 协议(或者称为 SSH 2.0``。这个协议与1.0版不兼容在1997年进行了标准化1998年推出了软件实现 SSH2。但是官方的 SSH2 软件是一个专有软件,不能免费使用,而且 SSH1的有些功能也没有提供。
1999年OpenBSD 的开发人员决定写一个``SSH 2 协议的开源实现`` ,这就是 OpenSSH 项目。该项目最初是基于 SSH 1.2.12 版本,那是当时 SSH1 最后一个开源版本。但是OpenSSH 很快就完全摆脱了原始的官方代码在许多开发者的参与下按照自己的路线发展。OpenSSH 随 OpenBSD 2.6 版本一起提供,以后又移植到其他操作系统,成为最流行的 SSH 实现。目前Linux 的所有发行版几乎都自带 OpenSSH。
## 开始
李华是一个大学生现在他买了一台服务器公网IPv4为114.514.114.514,李华打算连到上面看看:
```
ssh -p 22 root@114.514.114.514
```
随后命令行弹出了密码输入李华输入了初始密码114514,成功登录了进去;现在每次登录只要输入一行命令就可以,大功告成!
## 安全
一段时间后李华的linux知识提高了不少他发现有不少IP在用随机密码不断尝试登录自己的服务器这太危险了
于是,李华查阅了资料,发现有一篇博客[乱七八糟:服务器初始化与安全设置](https://blog.dich.bid/about-server-set/)于是他将openssh-server的端口改成了2333,并开启了fail2ban这下应该安全了
```
### 更换SSH端口
使用root账户或已经有sudo权限的用户登录到系统。
打开SSH配置文件`sshd_config`可以使用文本编辑器如nano或vi。以下是使用nano编辑器的示例
sudo vim /etc/ssh/sshd_config
在配置文件中找到以下行:
Port 22
这是SSH默认的端口号你可以将其更改为你想要的任何未被占用的端口号。例如将端口更改为2333
Port 2333
保存并关闭文本编辑器。重新启动SSH服务以应用更改
sudo service ssh restart
或者如果你的系统使用systemd可以使用以下命令
sudo systemctl restart ssh
### 安装 Fail2ban
sudo apt-get install fail2ban
#### Debian 12 及以上的版本需要手动安装 rsyslog
sudo apt-get install rsyslog
####启动 Fail2ban 服务
sudo systemctl start fail2ban
#### 开机自启动
sudo systemctl enable fail2ban
#### 查看 Fail2ban 服务状态
sudo systemctl status fail2ban
```
但是服务器依然在被爆破,李华又又研究了以下教程,决定将自己的服务器由密码登录改为密钥登录,这下没有牛马来爆破了!
```
#### 执行以下命令生成.pub后缀的公钥和无后缀的密钥
ssh-keygen
注意不同密钥对名称不能相同;同时可以为这两个文件用密码加密;
#### 随后将.pub后缀的公钥中的内容写入服务器的~/.ssh/authorized_keys中
#### 使用以下命令编译服务器的SSH配置
vim /etc/ssh/sshd_config
将其中的该行改为PasswordAuthentication no保存退出随后使用
sudo systemctl restart sshd
重启SSH即可禁用密码登录
#### 将PermitRootLogin一栏改为PermitRootLogin prohibit-password**即可实现仅root用户密钥登录
#### 使用以下命令查看输出,
sudo cat /etc/ssh/sshd_config | grep -E 'PasswordAuthentication|PubkeyAuthentication'
如有PasswordAuthentication no → 禁用密码登录以及PubkeyAuthentication yes → 允许密钥登录则成功。
> 注意authorized_keys**的权限为600如果不是则需要改正chmod 600 ~/.ssh/authorized_keys
```
## 管理
现在服务器安全了但随着服务器数量的增加李华很快发现一个新问题如何管理这些个SSH连接呢手动输入太慢了每次都要复制粘贴也很麻烦但是又不得不用总不能回退到密码时代吧况且数量多了密码也记不住。
于是李华运用软件工程学的思想想着这种大众的需求应该有人解决过了吧果然李华很快在GitHub上找到了一个开源跨平台的SSH管理软件[electerm](https://github.com/electerm/electerm)!
![electerm](/images/electerm.png)
通过在electerm的书签中写入服务器的地址登录用户和密钥只要打开electerm并点击书签就可以连接了太方便了
## 返璞
随着技术阅历的增长李华看electerm越来越不顺眼用它管理SSH固然方便但同时这就得在各个系统上安装一个Electron架构的软件而且用electerm的shell并不好用,并且备份electerm的配置不能给其他软件使用。终于在一次界面崩溃之后李华忍无可忍决定更换新的方案
通过研究李华发现原来openssh有自带的管理方法且非常便捷好用。
首先,李华在用户目录下创建了一个``.ssh``文件夹linux中在``/home/username/.ssh``这里windows下在``C:\Users\username\.ssh``这里。
随后李华安装了openssh在系统上linux中一般已经存在windows上在``设置-系统-可选功能-添加功能``中选中OpenSSH Client和openssh-server开启即可.
随后,李华在.ssh文件夹下创建了一个文件名为``config``,并在其中写入以下内容:
```
Host US
HostName 114.514.114.514
User root
IdentityFile ~/.ssh/US
IdentitiesOnly yes
```
随后李华在对应的位置``~/.ssh/US``创建了一个文件,李华将服务器的私钥放了进去,里面是以``-----BEGIN OPENSSH PRIVATE KEY-----``开头``-----END OPENSSH PRIVATE KEY-----``结尾的私钥。
现在,要登录``114.514.114.514``这台服务器,只需要使用``ssh US``命令就可以连上服务器了,不用再手动输入了!
## 归真
在进一步了解SSH之后李华很快又发现了新的问题服务器的私钥放在本地是不安全的尤其是Windows这种安装源松散鱼龙混杂的系统上。究竟有没有更好的方法呢在对keepassxc进行研究后李华终于得出了一个几乎完美的方案
- 开启keepassxc的SSH代理集成
- 本地.ssh文件夹只保留公钥
- 私钥保存在keepassxc的一个组中
这样一来,当你执行``ssh xxx``时ssh 不是去读私钥文件,而是通过``SSH_AUTH_SOCK``环境变量找到 KeePassXC 的 agent。KeePassXC 会提示你解锁数据库/确认使用密钥。私钥不会离开 KeePassXC只是 KeePassXC ``用私钥做一次签名``,把结果返回给 ssh。这样``硬盘上不需要保存私钥文件``,安全性更高,且``只需要备份.ssh文件夹和keepassxc的kbdx文件``即可.
那么该怎么做呢?
首先,将.ssh文件夹中的config进行修改,把私钥文件改为公钥文件,同时创建对应的``~/.ssh/US.pub``公钥文件里面是以ssh-ed25519或者ssh-rsa开头的公钥.
```
Host US
HostName 114.514.114.514
User root
IdentityFile ~/.ssh/US.pub
IdentitiesOnly yes
```
随后在keepassxc的设置-ssh代理中开启``启用SSH代理集成``.openssh
接下来在keepassxc中左侧栏``新建一个文件夹``名为SSH里面``新建条目``标题为US和config中一致然后在右侧``高级``中``新建``附件文件名为US和config中保持一致文件内容为US的私钥.随后在左侧SSH代理中选中``在打开或解锁数据库的时候,向代理添加密钥``和``数据库锁定或关闭时从SSH代理中删除密钥``这两个选项,并将下面的``私钥``选择``附件``即为我们刚刚在高级中新建的US可以看到对应的公钥也出现了上一步没有公钥的可以在这里添加.按``确定``后关闭keepassxc并重新开启这时候就可以使用``ssh US``命令登录了!
> 注意每次登录前先开启keepassxc并解锁
---
**Done.**

View File

@@ -622,8 +622,8 @@
<span class="button next">
<a href="https://blog.dich.bid/about-gpg/">
<span class="button__text">乱七八糟:GPG使用小记</span>&nbsp;
<a href="https://blog.dich.bid/network-ssh/">
<span class="button__text">网络艺术:SSH使用指南</span>&nbsp;
<span class="button__icon"></span>
</a>
</span>

View File

@@ -247,9 +247,9 @@
</div>
<div class="pagination__buttons">
<span class="button previous">
<a href="https://blog.dich.bid/about-baci/">
<a href="https://blog.dich.bid/network-ssh/">
<span class="button__icon"></span>&nbsp;
<span class="button__text">乱七八糟:Baci实验笔记</span>
<span class="button__text">网络艺术:SSH使用指南</span>
</a>
</span>

View File

@@ -125,6 +125,16 @@
::
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
</li>
<li class="post-list">
<a href="https://blog.dich.bid/network-ssh/">
<span class="post-date">2025-05-02</span>
:: <span class="post-list-title">网络艺术:SSH使用指南</span></a>
<span class="post-tags-inline">
::
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
</li>
<li class="post-list">
<a href="https://blog.dich.bid/about-baci/">

View File

@@ -45,6 +45,25 @@
<summary type="html">&lt;p&gt;前言 PGP&#x2F;GPG 的核心功能——公钥加密、数字签名、信任管理广泛用于各个行业,本文简单说明了其使用方法。&lt;&#x2F;p&gt;</summary>
</entry>
<entry xml:lang="en">
<title>网络艺术:SSH使用指南</title>
<published>2025-05-02T00:00:00+00:00</published>
<updated>2025-05-02T00:00:00+00:00</updated>
<author>
<name>
Unknown
</name>
</author>
<link rel="alternate" type="text/html" href="https://blog.dich.bid/network-ssh/"/>
<id>https://blog.dich.bid/network-ssh/</id>
<summary type="html">&lt;p&gt;前言 SSHSecure Shell 的缩写)是一种网络协议,用于加密两台计算机之间的通信,并且支持各种身份验证机制。&lt;&#x2F;p&gt;</summary>
</entry>
<entry xml:lang="en">
<title>乱七八糟:Baci实验笔记</title>

BIN
public/images/electerm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

View File

@@ -166,6 +166,39 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-ssh/">网络艺术:SSH使用指南</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2025-05-02
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
<div class="post-content">
<p>前言 SSHSecure Shell 的缩写)是一种网络协议,用于加密两台计算机之间的通信,并且支持各种身份验证机制。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/network-ssh/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
@@ -232,39 +265,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-aria2/">下载系列(3):Aria2使用指南</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2025-04-15
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
<div class="post-content">
<p>前言 Aria2是一款开源、跨平台的命令行界面下载管理器常常被各种下载器软件使用。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/network-aria2/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -0,0 +1,303 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Dich&#x27;blog</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<meta name="robots" content="noodp"/>
<link rel="stylesheet" href="https://blog.dich.bid/style.css">
<link rel="stylesheet" href="https://blog.dich.bid/color/blue.css">
<link rel="stylesheet" href="https://blog.dich.bid/color/background_dark.css">
<link rel="stylesheet" href="https://blog.dich.bid/font-hack-subset.css">
<meta name="description" content="">
<meta property="og:description" content="">
<meta property="og:title" content="Dich'blog">
<meta property="og:type" content="article">
<meta property="og:url" content="https://blog.dich.bid/network-ssh/">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:description" content="">
<meta name="twitter:title" content="Dich'blog">
<meta property="twitter:domain" content="blog.dich.bid">
<meta property="twitter:url" content="https://blog.dich.bid/network-ssh/">
<link rel="alternate" type="application/atom+xml" title="Dich&#x27;blog Atom Feed" href="https://blog.dich.bid/atom.xml" />
<link rel="icon" type="image/png" href=&#x2F;dich.webp />
<!-- ✅ Added center alignment styles -->
<style>
.footer {
text-align: center;
padding: 1rem 0;
}
.footer__inner {
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
}
.copyright {
text-align: center;
}
</style>
</head>
<body class="">
<div class="container">
<header class="header">
<div class="header__inner">
<div class="header__logo">
<a href="https://blog.dich.bid" style="text-decoration: none;">
<div class="logo">
Dich&#x27;blog
</div>
</a>
</div>
</div>
<nav class="menu">
<ul class="menu__inner">
<li class="active"><a href="https://blog.dich.bid">blog</a></li>
<li><a href="https://blog.dich.bid/archive">archive</a></li>
<li><a href="https://blog.dich.bid/tags">tags</a></li>
<li><a href="https://blog.dich.bid/weekly">weekly</a></li>
<li><a href="https://blog.dich.bid/search">search</a></li>
<li><a href="https://blog.dich.bid/about">about me</a></li>
<li><a href="https://blog.dich.bid/links">links</a></li>
<li><a href="https://blog.dich.bid/atom.xml">rss</a></li>
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
</ul>
</nav>
</header>
<div class="content">
<div class="post">
<h1 class="post-title"><a href="https://blog.dich.bid/network-ssh/">网络艺术:SSH使用指南</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2025-05-02
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
<div class="post-content">
<p>前言 SSHSecure Shell 的缩写)是一种网络协议,用于加密两台计算机之间的通信,并且支持各种身份验证机制。</p>
<span id="continue-reading"></span><h2 id="li-shi">历史</h2>
<p>1995年芬兰赫尔辛基工业大学的研究员 Tatu Ylönen 设计了 <code>SSH 协议的第一个版本(现称为 SSH 1</code>,同时写出了第一个实现(称为 SSH1</p>
<p>当时,他所在的大学网络一直发生密码嗅探攻击,他不得不为服务器设计一个更安全的登录方式。写完以后,他就把这个工具公开了,允许其他人免费使用。</p>
<p>SSH 可以替换 rlogin、TELNET、FTP 和 rsh 这些不安全的协议所以大受欢迎用户快速增长1995年底已经发展到五十个国家的20,000个用户。SSH 1 协议也变成 IETF 的标准文档。</p>
<p>1995年12月由于客服需求越来越大<code>TatuYlönen就成立了一家公司SCS专门销售和开发SSH</code>。这个软件的后续版本,逐渐从免费软件变成了专有的商业软件。</p>
<p>SSH 1 协议存在一些安全漏洞,所以<code>1996年又提出了 SSH 2 协议(或者称为 SSH 2.0</code>。这个协议与1.0版不兼容在1997年进行了标准化1998年推出了软件实现 SSH2。但是官方的 SSH2 软件是一个专有软件,不能免费使用,而且 SSH1的有些功能也没有提供。</p>
<p>1999年OpenBSD 的开发人员决定写一个<code>SSH 2 协议的开源实现</code> ,这就是 OpenSSH 项目。该项目最初是基于 SSH 1.2.12 版本,那是当时 SSH1 最后一个开源版本。但是OpenSSH 很快就完全摆脱了原始的官方代码在许多开发者的参与下按照自己的路线发展。OpenSSH 随 OpenBSD 2.6 版本一起提供,以后又移植到其他操作系统,成为最流行的 SSH 实现。目前Linux 的所有发行版几乎都自带 OpenSSH。</p>
<h2 id="kai-shi">开始</h2>
<p>李华是一个大学生现在他买了一台服务器公网IPv4为114.514.114.514,李华打算连到上面看看:</p>
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>ssh -p 22 root@114.514.114.514
</span></code></pre>
<p>随后命令行弹出了密码输入李华输入了初始密码114514,成功登录了进去;现在每次登录只要输入一行命令就可以,大功告成!</p>
<h2 id="an-quan">安全</h2>
<p>一段时间后李华的linux知识提高了不少他发现有不少IP在用随机密码不断尝试登录自己的服务器这太危险了</p>
<p>于是,李华查阅了资料,发现有一篇博客<a href="https://blog.dich.bid/about-server-set/">乱七八糟:服务器初始化与安全设置</a>于是他将openssh-server的端口改成了2333,并开启了fail2ban这下应该安全了</p>
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>### 更换SSH端口
</span><span>
</span><span>使用root账户或已经有sudo权限的用户登录到系统。
</span><span>
</span><span>打开SSH配置文件`sshd_config`可以使用文本编辑器如nano或vi。以下是使用nano编辑器的示例
</span><span>
</span><span>sudo vim /etc/ssh/sshd_config
</span><span>
</span><span>在配置文件中找到以下行:
</span><span>
</span><span>Port 22
</span><span>
</span><span>这是SSH默认的端口号你可以将其更改为你想要的任何未被占用的端口号。例如将端口更改为2333
</span><span>
</span><span>Port 2333
</span><span>
</span><span>保存并关闭文本编辑器。重新启动SSH服务以应用更改
</span><span>
</span><span>sudo service ssh restart
</span><span>
</span><span>或者如果你的系统使用systemd可以使用以下命令
</span><span>
</span><span>sudo systemctl restart ssh
</span><span>
</span><span>### 安装 Fail2ban
</span><span>
</span><span>sudo apt-get install fail2ban
</span><span>
</span><span>#### Debian 12 及以上的版本需要手动安装 rsyslog
</span><span>
</span><span>sudo apt-get install rsyslog
</span><span>
</span><span>####启动 Fail2ban 服务
</span><span>
</span><span>sudo systemctl start fail2ban
</span><span>
</span><span>#### 开机自启动
</span><span>
</span><span>sudo systemctl enable fail2ban
</span><span>
</span><span>#### 查看 Fail2ban 服务状态
</span><span>
</span><span>sudo systemctl status fail2ban
</span><span>
</span></code></pre>
<p>但是服务器依然在被爆破,李华又又研究了以下教程,决定将自己的服务器由密码登录改为密钥登录,这下没有牛马来爆破了!</p>
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>#### 执行以下命令生成.pub后缀的公钥和无后缀的密钥
</span><span>
</span><span>ssh-keygen
</span><span>
</span><span>注意不同密钥对名称不能相同;同时可以为这两个文件用密码加密;
</span><span>
</span><span>#### 随后将.pub后缀的公钥中的内容写入服务器的~/.ssh/authorized_keys中
</span><span>
</span><span>#### 使用以下命令编译服务器的SSH配置
</span><span>
</span><span>vim /etc/ssh/sshd_config
</span><span>
</span><span>将其中的该行改为PasswordAuthentication no保存退出随后使用
</span><span>
</span><span>sudo systemctl restart sshd
</span><span>
</span><span>重启SSH即可禁用密码登录
</span><span>
</span><span>#### 将PermitRootLogin一栏改为PermitRootLogin prohibit-password**即可实现仅root用户密钥登录
</span><span>
</span><span>#### 使用以下命令查看输出,
</span><span>
</span><span>sudo cat /etc/ssh/sshd_config | grep -E &#39;PasswordAuthentication|PubkeyAuthentication&#39;
</span><span>
</span><span>如有PasswordAuthentication no → 禁用密码登录以及PubkeyAuthentication yes → 允许密钥登录则成功。
</span><span>
</span><span>&gt; 注意authorized_keys**的权限为600如果不是则需要改正chmod 600 ~/.ssh/authorized_keys
</span></code></pre>
<h2 id="guan-li">管理</h2>
<p>现在服务器安全了但随着服务器数量的增加李华很快发现一个新问题如何管理这些个SSH连接呢手动输入太慢了每次都要复制粘贴也很麻烦但是又不得不用总不能回退到密码时代吧况且数量多了密码也记不住。</p>
<p>于是李华运用软件工程学的思想想着这种大众的需求应该有人解决过了吧果然李华很快在GitHub上找到了一个开源跨平台的SSH管理软件<a href="https://github.com/electerm/electerm">electerm</a>!</p>
<p><img src="/images/electerm.png" alt="electerm" /></p>
<p>通过在electerm的书签中写入服务器的地址登录用户和密钥只要打开electerm并点击书签就可以连接了太方便了</p>
<h2 id="fan-pu">返璞</h2>
<p>随着技术阅历的增长李华看electerm越来越不顺眼用它管理SSH固然方便但同时这就得在各个系统上安装一个Electron架构的软件而且用electerm的shell并不好用,并且备份electerm的配置不能给其他软件使用。终于在一次界面崩溃之后李华忍无可忍决定更换新的方案</p>
<p>通过研究李华发现原来openssh有自带的管理方法且非常便捷好用。</p>
<p>首先,李华在用户目录下创建了一个<code>.ssh</code>文件夹linux中在<code>/home/username/.ssh</code>这里windows下在<code>C:\Users\username\.ssh</code>这里。</p>
<p>随后李华安装了openssh在系统上linux中一般已经存在windows上在<code>设置-系统-可选功能-添加功能</code>中选中OpenSSH Client和openssh-server开启即可.</p>
<p>随后,李华在.ssh文件夹下创建了一个文件名为<code>config</code>,并在其中写入以下内容:</p>
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>Host US
</span><span> HostName 114.514.114.514
</span><span> User root
</span><span> IdentityFile ~/.ssh/US
</span><span> IdentitiesOnly yes
</span></code></pre>
<p>随后李华在对应的位置<code>~/.ssh/US</code>创建了一个文件,李华将服务器的私钥放了进去,里面是以<code>-----BEGIN OPENSSH PRIVATE KEY-----</code>开头<code>-----END OPENSSH PRIVATE KEY-----</code>结尾的私钥。</p>
<p>现在,要登录<code>114.514.114.514</code>这台服务器,只需要使用<code>ssh US</code>命令就可以连上服务器了,不用再手动输入了!</p>
<h2 id="gui-zhen">归真</h2>
<p>在进一步了解SSH之后李华很快又发现了新的问题服务器的私钥放在本地是不安全的尤其是Windows这种安装源松散鱼龙混杂的系统上。究竟有没有更好的方法呢在对keepassxc进行研究后李华终于得出了一个几乎完美的方案</p>
<ul>
<li>开启keepassxc的SSH代理集成</li>
<li>本地.ssh文件夹只保留公钥</li>
<li>私钥保存在keepassxc的一个组中</li>
</ul>
<p>这样一来,当你执行<code>ssh xxx</code>ssh 不是去读私钥文件,而是通过<code>SSH_AUTH_SOCK</code>环境变量找到 KeePassXC 的 agent。KeePassXC 会提示你解锁数据库/确认使用密钥。私钥不会离开 KeePassXC只是 KeePassXC <code>用私钥做一次签名</code>,把结果返回给 ssh。这样<code>硬盘上不需要保存私钥文件</code>,安全性更高,且<code>只需要备份.ssh文件夹和keepassxc的kbdx文件</code>即可.</p>
<p>那么该怎么做呢?</p>
<p>首先,将.ssh文件夹中的config进行修改,把私钥文件改为公钥文件,同时创建对应的<code>~/.ssh/US.pub</code>公钥文件里面是以ssh-ed25519或者ssh-rsa开头的公钥.</p>
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>Host US
</span><span> HostName 114.514.114.514
</span><span> User root
</span><span> IdentityFile ~/.ssh/US.pub
</span><span> IdentitiesOnly yes
</span></code></pre>
<p>随后在keepassxc的设置-ssh代理中开启<code>启用SSH代理集成</code>.openssh</p>
<p>接下来在keepassxc中左侧栏<code>新建一个文件夹</code>名为SSH里面<code>新建条目</code>标题为US和config中一致然后在右侧<code>高级</code><code>新建</code>附件文件名为US和config中保持一致文件内容为US的私钥.随后在左侧SSH代理中选中<code>在打开或解锁数据库的时候,向代理添加密钥</code><code>数据库锁定或关闭时从SSH代理中删除密钥</code>这两个选项,并将下面的<code>私钥</code>选择<code>附件</code>即为我们刚刚在高级中新建的US可以看到对应的公钥也出现了上一步没有公钥的可以在这里添加.按<code>确定</code>后关闭keepassxc并重新开启这时候就可以使用<code>ssh US</code>命令登录了!</p>
<blockquote>
<p>注意每次登录前先开启keepassxc并解锁</p>
</blockquote>
<hr />
<p><strong>Done.</strong></p>
</div>
<div class="pagination">
<div class="pagination__title">
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
<hr />
</div>
<div class="pagination__buttons">
<span class="button previous">
<a href="https://blog.dich.bid/about-baci/">
<span class="button__icon"></span>&nbsp;
<span class="button__text">乱七八糟:Baci实验笔记</span>
</a>
</span>
<span class="button next">
<a href="https://blog.dich.bid/about-gpg/">
<span class="button__text">乱七八糟:GPG使用小记</span>&nbsp;
<span class="button__icon"></span>
</a>
</span>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="footer__inner">
<div class="copyright">
<span>©
2025
Dichgrem</span>
<span class="copyright-theme">
<span class="copyright-theme-sep"> :: CC BY-SA 4.0 :: A friend comes from distant lands</span>
</a>
</span>
</div>
</div>
</footer>
</div>
</body>
</html>

View File

@@ -104,6 +104,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-aria2/">下载系列(3):Aria2使用指南</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2025-04-15
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
<div class="post-content">
<p>前言 Aria2是一款开源、跨平台的命令行界面下载管理器常常被各种下载器软件使用。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/network-aria2/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-yt-dlp/">下载系列(2):Yt-dlp使用指南</a></h1>
<div class="post-meta-inline">
@@ -232,39 +265,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-frp/">网络艺术:FRP使用指南</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2025-03-01
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
<div class="post-content">
<p>前言 FRP (Fast Reverse Proxy) 是一个用Go语言开发的高性能反向代理应用可以帮助您轻松地进行内网穿透对外提供服务.</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/network-frp/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -104,6 +104,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-frp/">网络艺术:FRP使用指南</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2025-03-01
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
<div class="post-content">
<p>前言 FRP (Fast Reverse Proxy) 是一个用Go语言开发的高性能反向代理应用可以帮助您轻松地进行内网穿透对外提供服务.</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/network-frp/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-ventoy/">乱七八糟:Ventoy战斗盘部署</a></h1>
<div class="post-meta-inline">
@@ -232,39 +265,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-nginx/">网络艺术:Docker建站与反向代理</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-07-14
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
<div class="post-content">
<p>前言 Docker的出现极大简化了建站流程较过去的LAMP方式优雅了许多配合Nginx反向代理可以快速上线HTTPS站点。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/network-nginx/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -104,6 +104,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-nginx/">网络艺术:Docker建站与反向代理</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-07-14
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
<div class="post-content">
<p>前言 Docker的出现极大简化了建站流程较过去的LAMP方式优雅了许多配合Nginx反向代理可以快速上线HTTPS站点。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/network-nginx/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-server-set/">乱七八糟:服务器初始化与安全设置</a></h1>
<div class="post-meta-inline">
@@ -232,39 +265,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/windows-4-auto/">Windows系列(4):封装与全自动安装</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-05-29
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/windows/">#Windows</a></span>
<div class="post-content">
<p>前言 由于厂商默认安装windows家庭版导致各种问题频发,这里作者封装了一个开箱即用的全自动安装激活和优化的Windows11镜像。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/windows-4-auto/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -104,6 +104,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/windows-4-auto/">Windows系列(4):封装与全自动安装</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-05-29
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/windows/">#Windows</a></span>
<div class="post-content">
<p>前言 由于厂商默认安装windows家庭版导致各种问题频发,这里作者封装了一个开箱即用的全自动安装激活和优化的Windows11镜像。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/windows-4-auto/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/windows-3-jh/">Windows系列(3):分类与激活</a></h1>
<div class="post-meta-inline">
@@ -232,39 +265,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-podcast-use/">乱七八糟:播客收听指北</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-03-06
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 讲起播客,许多人第一反应是喜马拉雅,但其实播客的订阅和收听有许多种方式。本文带你了解订阅播客的各种方式,并告诉你市面上有哪些不错的播客客户端可供选择。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/about-podcast-use/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -104,6 +104,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-podcast-use/">乱七八糟:播客收听指北</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-03-06
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 讲起播客,许多人第一反应是喜马拉雅,但其实播客的订阅和收听有许多种方式。本文带你了解订阅播客的各种方式,并告诉你市面上有哪些不错的播客客户端可供选择。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/about-podcast-use/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-rss-read/">乱七八糟:RSS阅读指南</a></h1>
<div class="post-meta-inline">
@@ -232,39 +265,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-cdn/">网络艺术:CDN技术与应用</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-02-16
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
<div class="post-content">
<p>前言 内容分发网络CDN是一组分布在不同地理位置的服务器网络,使用户能够就近获取内容,从而降低延迟并缓解源站压力​.</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/network-cdn/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -104,6 +104,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-cdn/">网络艺术:CDN技术与应用</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-02-16
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
<div class="post-content">
<p>前言 内容分发网络CDN是一组分布在不同地理位置的服务器网络,使用户能够就近获取内容,从而降低延迟并缓解源站压力​.</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/network-cdn/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-ssl/">网络艺术:SSL&#x2F;TLS证书</a></h1>
<div class="post-meta-inline">
@@ -232,39 +265,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-blog/">乱七八糟:个人博客搭建</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2023-10-12
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 个人博客的搭建具有许多的方案可以选择,本文介绍如何快速部署一个博客,并将其发布到公网。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/about-blog/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -104,6 +104,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-blog/">乱七八糟:个人博客搭建</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2023-10-12
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 个人博客的搭建具有许多的方案可以选择,本文介绍如何快速部署一个博客,并将其发布到公网。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/about-blog/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-mechrev-keyboard/">乱七八糟:机械革命键盘失灵拯救记</a></h1>
<div class="post-meta-inline">
@@ -232,39 +265,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/awesome-android-tv/">综合工程:Android-TV 折腾小记</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2023-08-14
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/zong-he-gong-cheng/">#综合工程</a></span>
<div class="post-content">
<p>前言 由于 AppleTV 的高昂的售价和普通电视盒子广告的泛滥,一台开源、多功能的原生安卓电视盒子逐渐成为智能家居的必备神器。出于对 IPTV、YouTube 和家庭影院等需求,以及对一面赏心悦目电视墙的期待,这里分享 Android TV 以下简称ATV安装的一些要点。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/awesome-android-tv/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -104,6 +104,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/awesome-android-tv/">综合工程:Android-TV 折腾小记</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2023-08-14
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/zong-he-gong-cheng/">#综合工程</a></span>
<div class="post-content">
<p>前言 由于 AppleTV 的高昂的售价和普通电视盒子广告的泛滥,一台开源、多功能的原生安卓电视盒子逐渐成为智能家居的必备神器。出于对 IPTV、YouTube 和家庭影院等需求,以及对一面赏心悦目电视墙的期待,这里分享 Android TV 以下简称ATV安装的一些要点。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/awesome-android-tv/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/awesome-android-root/">综合工程:安卓刷机与root教程</a></h1>
<div class="post-meta-inline">

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
{"version":"1.3.0","languages":{"en":{"hash":"en_7cf7fefc59","wasm":"en","page_count":92}}}
{"version":"1.3.0","languages":{"en":{"hash":"en_9e10693336","wasm":"en","page_count":93}}}

Binary file not shown.

View File

@@ -177,6 +177,10 @@
<loc>https://blog.dich.bid/network-nginx/</loc>
<lastmod>2024-07-14</lastmod>
</url>
<url>
<loc>https://blog.dich.bid/network-ssh/</loc>
<lastmod>2025-05-02</lastmod>
</url>
<url>
<loc>https://blog.dich.bid/network-ssl/</loc>
<lastmod>2024-02-15</lastmod>

View File

@@ -116,7 +116,7 @@
<li class="tag-list">
<a href="https://blog.dich.bid/tags/network/">
Network (12 posts)
Network (13 posts)
</a>
</li>

View File

@@ -107,7 +107,7 @@ Dich&#x27;blog</title>
<div class="post">
<h1 class="post-title">
tag: #Network
(12 posts)
(13 posts)
</h1>
<a href="https://blog.dich.bid/tags">
@@ -116,6 +116,16 @@ Dich&#x27;blog</title>
<ul><li class="post-list">
<a href="https://blog.dich.bid/network-ssh/">
<span class="post-date">2025-05-02</span>
:: <span class="post-list-title">网络艺术:SSH使用指南</span></a>
<span class="post-tags-inline">
::
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
</li>
<li class="post-list">
<a href="https://blog.dich.bid/network-aria2/">
<span class="post-date">2025-04-15</span>
:: <span class="post-list-title">下载系列(3):Aria2使用指南</span></a>

BIN
static/images/electerm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB