565 字
3 分钟
Ssh的一些小知识
2025-12-19

引言#

接触Linux的人,对ssh肯定不会陌生,本文会记录一些ssh的命令以及可以用到的地方

开始#

Terminal window
ssh-keygen -t ed25519 -f deploy_key
#在当前目录生成ed25519算法的公钥和私钥并且以deploy_key命名

生成以后在当前目录会出现两个文件,带pub后缀的是公钥 ![[assets/Rare knowledge of ssh.png]] 除了在ssh上用作鉴权,这对密钥同样可以用在Github仓库中

在一个github仓库中添加公钥作为Deploy Keys,就可以在其他配置了对应私钥仓库的actions中对当前配置好的仓库做诸如推送文件等操作

需要配置Deploy Keys的仓库可以在仓库的Settings->Deploy Keys->Add deploy key操作,完整粘贴.pub文件里面的内容即可

TIP

文件内容应该以’ssh-rsa’, ‘ecdsa-sha2-nistp256’, ‘ecdsa-sha2-nistp384’, ‘ecdsa-sha2-nistp521’, ‘ssh-ed25519’等等开头

![[assets/Rare knowledge of ssh-1.png]]

之后只需要在对应仓库的Actions Workflow里面添加对应参数的secrets即可 可以在仓库的Settings->Secrets and variables->Actions操作 ![[assets/Rare knowledge of ssh-2.png]]

这里一定要确保和你Workflow里面引用的名字是对应的,比如我的是secrets.ACTIONS_DEPLOY_KEY ![[assets/Rare knowledge of ssh-3.png]] 之后就可以愉快的使用Github Actions啦

通过代理使用ssh#

当我们要测试到某些主机的ssh连接时,总是会有代理的需求,那么应该如何做呢

首先,编辑ssh的config文件,通常在~/.ssh/config或者"C:\Users\Username\.ssh\config"

此处以Github举例,加上一行ProxyCommand即可

Host github.com
HostName github.com
User git
ProxyCommand cmd /c "echo [Using Proxy 10808] Connecting... >&2 && "C:/Program Files/Git/mingw64/bin/connect.exe" -H 127.0.0.1:10808 %h %p"
#此处连接的代理是本机10808端口上的http代理
TIP

Windows默认没有connect可执行文件,可以通过安装Git for Windows获取或者使用Cygwin之类的进行安装

连接某主机时指定特定私钥#

在我们配置无密码登录ssh时,我们不希望每次都在ssh后面加上参数-i "/path/to/pri_key",那怎么办呢?

同样的,我们在ssh的config文件下添加一行IdentityFile即可

Host 10.1.0.199
HostName 10.1.0.199
User ti
Port 522
PreferredAuthentications publickey
IdentityFile "C:\SSH_key\mainkey\pri_ssh"
###此处以Windows的路径举例
TIP

使用前记得提前去主机对应用户的 .ssh/authorized_keys 中粘贴你要用的密钥的对应公钥 :::

Ssh的一些小知识
https://www.timmyc.fun/posts/rare-knowledge-of-ssh/
作者
Timmy Cheng
发布于
2025-12-19
许可协议
CC BY-NC-SA 4.0