引言
接触Linux的人,对ssh肯定不会陌生,本文会记录一些ssh的命令以及可以用到的地方
开始
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代理TIPWindows默认没有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中粘贴你要用的密钥的对应公钥 :::