openeuler2203构建openssh10.3p1版本的RPM包
此openssh.spec打包文件在openeuler2203与openeuler2403环境打包成功,测试安装正常。
支持 X11转发与ssh-copy-id命令。
RPM包下载地址:
https://gitcode.com/micoder/openssh/tree/main/openssh10.3p1-openEuler2203
源码安装参考以下内容:
install -v -g sys -m700 -d /var/lib/sshd &&
groupadd -g 50 sshd &&
useradd -c 'sshd PrivSep' \
-d /var/lib/sshd \
-g sshd \
-s /bin/false \
-u 50 sshd
./configure --prefix=/usr \
--sysconfdir=/etc/ssh \
--with-privsep-path=/var/lib/sshd \
--with-default-path=/usr/bin \
--with-superuser-path=/usr/sbin:/usr/bin \
--with-pid-dir=/run &&
make
要测试结果,请执行:
make -j1 tests.
现在,以 root 用户身份:
make install &&
install -v -m755 contrib/ssh-copy-id /usr/bin &&
install -v -m644 contrib/ssh-copy-id.1 \
/usr/share/man/man1 &&
install -v -m755 -d /usr/share/doc/openssh-10.3p1 &&
install -v -m644 INSTALL LICENCE OVERVIEW README* \
/usr/share/doc/openssh-10.3p1
命令说明
--sysconfdir=/etc/ssh: 此选项可防止配置文件被安装到 /usr/etc 目录。
--with-default-path=/usr/bin 和 --with-superuser-path=/usr/sbin:/usr/bin:
这些选项用于设置 PATH,使其与 LFS 和 BLFS Shadow 软件包保持一致。
--with-pid-dir=/run:
此选项可防止 OpenSSH 引用已弃用的 /var/run 目录。
--with-pam:
此选项在构建时启用 Linux-PAM 支持。如果使用此选项,请确保在下文“配置信息”部分创建 PAM 配置。
--with-xauth=$XORG_PREFIX/bin/xauth:
此选项设置 X 身份验证所用 xauth 二进制文件的默认位置。环境变量 XORG_PREFIX 应按照 Xorg 构建环境进行设置。
也可在 sshd_config 中通过 XAuthLocation 关键字控制此位置。如果已安装 xauth(Xorg 应用程序之一),则可省略此开关。
--with-kerberos5=/usr:
此选项用于在构建中包含 Kerberos 5 支持。
--with-libedit:
此选项为 sftp 启用行编辑和历史记录功能。
配置 OpenSSH
配置文件 ~/.ssh/*、/etc/ssh/ssh_config 和 /etc/ssh/sshd_config
这些文件均无需进行必要修改。不过,你可能需要查看 /etc/ssh/ 目录下的文件,并根据系统安全需求进行适当调整。
建议进行的一项修改是禁用通过 ssh 进行的 root 登录。以 root 用户身份执行以下命令,禁用 root 通过 ssh 登录:
echo "PermitRootLogin no" >> /etc/ssh/sshd_config
如果希望无需输入密码即可登录,首先使用 ssh-keygen 创建 ~/.ssh/id_rsa 和 ~/.ssh/id_rsa.pub,然后将 ~/.ssh/id_rsa.pub 复制到要登录的远程计算机的 ~/.ssh/authorized_keys 中。
你需要将 REMOTE_USERNAME 和 REMOTE_HOSTNAME 替换为远程计算机的用户名和主机名,并且在执行 ssh-copy-id 命令时需要输入密码以确保成功:
ssh-keygen && ssh-copy-id -i ~/.ssh/id_ed25519.pub REMOTE_USERNAME@REMOTE_HOSTNAME
一旦实现无密码登录,实际上它比使用密码登录更安全(因为私钥比大多数人的密码要长得多)。如果现在希望禁用密码登录,请以 root 用户身份执行:
echo "PasswordAuthentication no" >> /etc/ssh/sshd_config && echo "KbdInteractiveAuthentication no" >> /etc/ssh/sshd_config
如果添加了 Linux-PAM 支持,并且希望 ssh 使用它,则需要为 sshd 添加配置文件并启用 LinuxPAM。
注意,ssh 仅使用 PAM 来检查密码,如果你已禁用密码登录,则不需要这些命令。如果希望使用 PAM,请以 root 用户身份执行以下命令:
sed 's@d/login@d/sshd@g' /etc/pam.d/login > /etc/pam.d/sshd && chmod 644 /etc/pam.d/sshd && echo "UsePAM yes" >> /etc/ssh/sshd_config
更多配置信息可在 sshd、ssh 和 ssh-agent 的手册页中找到。
Systemd 单元
要在系统启动时启动 SSH 服务器,请安装 blfs-systemd-units-20251204 软件包中包含的 sshd.service 单元。
[Note] 注意 BLFS 的 sshd systemd 单元不支持修改 /etc/sshd/sshd_config 中的 ListenAddress 设置。
make install-sshd
内容
已安装程序: scp、sftp、ssh、ssh-add、ssh-agent、ssh-copy-id、ssh-keygen、ssh-keyscan 和 sshd 已安装库:
无 已安装目录: /etc/ssh、/usr/share/doc/openssh-10.3p1 和 /var/lib/sshd
简要说明
scp
是一个文件复制程序,其功能类似于 rcp,但使用加密协议
sftp
是一个类 FTP 程序,可通过 SSH1 和 SSH2 协议工作
ssh
是一个类 rlogin/rsh 的客户端程序,但使用加密协议
sshd
是一个监听 ssh 登录请求的守护进程
ssh-add
是一个向 ssh-agent 添加密钥的工具
ssh-agent
是一个可以存储私钥的身份验证代理
ssh-copy-id
是一个允许使用本地密钥登录远程机器的脚本
ssh-keygen
是一个密钥生成工具
ssh-keyscan
是一个用于从多个主机收集公共主机密钥的实用程序