我想使用 ssh-keygen 的更新版本,因为它包含指纹的哈希功能,如下所示:
ssh-keygen -E md5 -lf ~/.ssh/id_rsa.pub
但我当前的版本无法识别-E参数(-l参数的一部分)。
(是的,我已经有一个解决方法来获取我的指纹哈希值,但无论如何我都想升级这个工具)。
如何升级?我正在运行 Debian 8。
答案1
有两种 Debian 风格的升级方式ssh-keygen
,因为openssh-client
在 Debian 8 向后移植中不可用。
第一个是升级到 Debian 9,因为它有一个足够新的openssh-client
软件包。
第二个是在 Debian 8 上重建 Debian 9 软件包:
sudo apt install devscripts build-essential dh-exec dh-systemd libaudit-dev libedit-dev libgtk-3-dev libkrb5-dev libpam0g-dev libselinux1-dev libssl-dev libsystemd-dev libwrap0-dev
dget http://httpredir.debian.org/debian/pool/main/o/openssh/openssh_7.4p1-10+deb9u1.dsc
cd openssh-7.4p1
dpkg-buildpackage -us -uc
这将安装一些必要的构建依赖项(您可以稍后卸载),从 Debian 9 下载软件包的源代码,然后构建它。它将在父目录中生成许多包,然后您可以安装它们:
sudo dpkg -i ../openssh-client_7.4p1-10+deb9u1_*.deb
有了这个解决方案,您就可以跟踪Debian 9 中软件包的任何更新,并在本地重建软件包。
答案2
您无法升级包的部分内容(在本例中为单个文件)。您需要升级整个 openssh-client 软件包,并且(目前)Debian 向后移植中不存在该软件包的新版本,因此您需要寻找第三方来承担所有风险。
答案3
要使用比包管理器提供的版本更新的开源工具版本,请从上游源下载源代码(在本例中,openssh.com),以及任何所需的库(例如,自由SSL)并在您自己的系统上编译它。