参考链接:https://www.jianshu.com/p/0882b0502960
openssh下载链接:
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz
ssh-askpass下载链接(可以不要):
依赖环境准备:
yum install rpm-build rpm-devel rpmdevtools gcc gcc-c++ glibc glibc-devel openssl-devel openssl prce pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel xmkmf libXt-devel initscripts libXt-devel imake gtk2-devel
创建编译目录:
mkdir -p rpmbuild/{SOURCES,SPECS,RPMS,SRPMS,BUILD,BUILDROOT} #手动创建
或
rpmdev-setuptree #命令创建(需要依赖包rpm-devel rpmdevtools)
rpmbuild基本格式:
rpmbuild [options] [spec文档|tarball包(或者压缩包—以.gz或.xz或.bz2结尾的)|源码包]
options有下面的几种选择:
1.-bp #只执行spec的%pre段(解开源码包并打补丁,即只做准备)
2.-bc #执行spec的%pre和%build 段(准备并编译)
3.-bi #执行spec中%pre,%build与%install(准备,编译并安装)
4.-bl #检查spec中的%file段(查看文件是否齐全)
5.-ba #建立源码与二进制包(常用):即编译后做成*.rpm和*.src.rpm
6.-bb #只建立二进制包(常用):即编译后做成*.rpm
7.-bs #只建立源码包:即只做成*.src.rpm
-tc -ti -ta -tb -ts 的功能类似,只是所需参数由spec文件变成tar包。
cp ~/openssh-8.6p1/contrib/redhat/openssh.spec ~/rpmbuild/SPECS/
cp /etc/pam.d/sshd ~/rpmbuild/SOURCES/
cp openssh-8.6p1.tar.gz ~/rpmbuild/SOURCES/
cp x11-ssh-askpass-1.2.4.1.tar.gz ~/rpmbuild/SOURCES/
cd SPECS
第104行:注释该行,检测openssl版本的,否则构建时会出现报错
BuildRequires: openssl-devel < 1.1
第 89 行: 添加一个源
Source2: sshd
第280行:更改为从SOURCE目录复制 sshd到/etc/pam.d/sshd,具体原因上面有解释注释掉原命令,改为下面这行
#install -m644 contrib/redhat/sshd.pam $RPM_BUILD_ROOT/etc/pam.d/sshd
install -m644 $RPM_SOURCE_DIR/sshd $RPM_BUILD_ROOT/etc/pam.d/sshd
第 340-341行 这两行需要放在 %pre server 下,为安装前备份内容
cp -r /etc/ssh /etc/ssh_bak
第 345 -353行: 需要放在 %post server后面,表示安装后需要执行的命令
1.允许root登录;升级为8.6后默认为不允许root登录
2.允许使用PAM登录认证 ;
3.允许使用X11Forwarding图形模块;
4.增加认证支持(默认openssh 8.6,默认不支持部分低版本的认证模式),不添加会造成低版本的连接器如:CRT等,客户端连接失败
5.给/etc/init.d/sshd 执行权限
6.三个文件 ssh_host_rsa_key、ssh_host_ecdsa_key、ssh_host_ed25519_key 为你要文件,8.6版本缩小了权限,只允许root查看,否者启动sshd服务会报错
sed -i -e "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
sed -i -e "s/#UsePAM no/UsePAM yes/g" /etc/ssh/sshd_config
sed -i -e "s/#X11Forwarding no/X11Forwarding yes/g" /etc/ssh/sshd_config
echo "KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1" >>/etc/ssh/sshd_config
chmod +x /etc/init.d/sshd
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key
第 10-15行: 是否生成 x11-askpass、gnome-askpass两个RPM包。可以不选,不选的话就不要 x11-ssh-askpass-1.2.4.1.tar.gz 包;默认生成,我建议选上,万一需要又得再来构建,麻烦
%global no_x11_askpass 0
%global no_gnome_askpass 0
rpmbuild -bb openssh.spec
cd /root/rpmbuild/RPMS/x86_64/
echo "
#!/bin/bash
cp /etc/pam.d/sshd /etc/pam.d/sshd_bak
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
rpm -Uvh ./*.rpm 2> /dev/null
cp -r /etc/pam.d/sshd_bak /etc/pam.d/sshd
cp /etc/ssh/sshd_config_bak /etc/ssh/sshd_config
#rm -rf /etc/ssh/ssh*key
chmod 600 /etc/ssh/ssh_host_rsa_key
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
chkconfig daemon-reload
service sshd restart
" > install.sh
cd ..&&tar -zcvf ssh8.6_x86_el6.tar x86_64/
附:openssh.spec文件范例(可复制粘贴)
%global ver 8.6p1
%global rel 1%{?dist}
%global sshd_uid 74
%global sshd_gid 74
%global aversion 1.2.4.1
%global no_x11_askpass 0
%global no_gnome_askpass 0
%global static_libcrypto 0
%global scard 0
%global gtk2 1
%if 0%{?rhel} > 6
%global build6x 0
%else
%global build6x 1
%endif
%if 0%{?fedora} >= 26
%global compat_openssl 1
%else
%global compat_openssl 0
%endif
%global kerberos5 1
%{?skip_x11_askpass:%global no_x11_askpass 1}
%{?skip_gnome_askpass:%global no_gnome_askpass 1}
%{?no_gtk2:%global gtk2 0}
%{?build_6x:%global build6x 1}
%if %{build6x}
%global _sysconfdir /etc
%endif
%{?static_openssl:%global static_libcrypto 1}
%{?smartcard:%global scard 1}
%global rescue 0
%{?build_rescue:%global rescue 1}
%if %{rescue}
%global kerberos5 0
%endif
Summary: The OpenSSH implementation of SSH protocol version 2.
Name: openssh
Version: %{ver}
%if %{rescue}
Release: %{rel}rescue
%else
Release: %{rel}
%endif
URL: https://www.openssh.com/portable.html
Source0: https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-%{version}.tar.gz
Source1: http://www.jmknoble.net/software/x11-ssh-askpass/x11-ssh-askpass-%{aversion}.tar.gz
Source2: sshd
License: BSD
Group: Applications/Internet
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
Obsoletes: ssh
%if %{build6x}
PreReq: initscripts >= 5.00
%else
Requires: initscripts >= 5.20
%endif
BuildRequires: perl
%if %{compat_openssl}
BuildRequires: compat-openssl10-devel
%else
BuildRequires: openssl-devel >= 1.0.1
#BuildRequires: openssl-devel < 1.1
%endif
BuildRequires: /bin/login
%if ! %{build6x}
BuildRequires: glibc-devel, pam
%else
BuildRequires: /usr/include/security/pam_appl.h
%endif
%if ! %{no_x11_askpass}
BuildRequires: /usr/include/X11/Xlib.h
BuildRequires: libXt-devel
BuildRequires: imake
BuildRequires: gtk2-devel
%endif
%if ! %{no_gnome_askpass}
BuildRequires: pkgconfig
%endif
%if %{kerberos5}
BuildRequires: krb5-devel
BuildRequires: krb5-libs
%endif
%package clients
Summary: OpenSSH clients.
Requires: openssh = %{version}-%{release}
Group: Applications/Internet
Obsoletes: ssh-clients
%package server
Summary: The OpenSSH server daemon.
Group: System Environment/Daemons
Obsoletes: ssh-server
Requires: openssh = %{version}-%{release}, chkconfig >= 0.9
%if ! %{build6x}
Requires: /etc/pam.d/system-auth
%endif
%package askpass
Summary: A passphrase dialog for OpenSSH and X.
Group: Applications/Internet
Requires: openssh = %{version}-%{release}
Obsoletes: ssh-extras
%package askpass-gnome
Summary: A passphrase dialog for OpenSSH, X, and GNOME.
Group: Applications/Internet
Requires: openssh = %{version}-%{release}
Obsoletes: ssh-extras
%description
SSH (Secure SHell) is a program for logging into and executing
commands on a remote machine. SSH is intended to replace rlogin and
rsh, and to provide secure encrypted communications between two
untrusted hosts over an insecure network. X11 connections and
arbitrary TCP/IP ports can also be forwarded over the secure channel.
OpenSSH is OpenBSD's version of the last free version of SSH, bringing
it up to date in terms of security and features, as well as removing
all patented algorithms to separate libraries.
This package includes the core files necessary for both the OpenSSH
client and server. To make this package useful, you should also
install openssh-clients, openssh-server, or both.
%description clients
OpenSSH is a free version of SSH (Secure SHell), a program for logging
into and executing commands on a remote machine. This package includes
the clients necessary to make encrypted connections to SSH servers.
You'll also need to install the openssh package on OpenSSH clients.
%description server
OpenSSH is a free version of SSH (Secure SHell), a program for logging
into and executing commands on a remote machine. This package contains
the secure shell daemon (sshd). The sshd daemon allows SSH clients to
securely connect to your SSH server. You also need to have the openssh
package installed.
%description askpass
OpenSSH is a free version of SSH (Secure SHell), a program for logging
into and executing commands on a remote machine. This package contains
an X11 passphrase dialog for OpenSSH.
%description askpass-gnome
OpenSSH is a free version of SSH (Secure SHell), a program for logging
into and executing commands on a remote machine. This package contains
an X11 passphrase dialog for OpenSSH and the GNOME GUI desktop
environment.
%prep
%if ! %{no_x11_askpass}
%setup -q -a 1
%else
%setup -q
%endif
%build
%if %{rescue}
CFLAGS="$RPM_OPT_FLAGS -Os"; export CFLAGS
%endif
%configure \
--sysconfdir=%{_sysconfdir}/ssh \
--libexecdir=%{_libexecdir}/openssh \
--datadir=%{_datadir}/openssh \
--with-default-path=/usr/local/bin:/bin:/usr/bin \
--with-superuser-path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin \
--with-privsep-path=%{_var}/empty/sshd \
--with-md5-passwords \
--mandir=%{_mandir} \
--with-mantype=man \
--disable-strip \
%if %{scard}
--with-smartcard \
%endif
%if %{rescue}
--without-pam \
%else
--with-pam \
%endif
%if %{kerberos5}
--with-kerberos5=$K5DIR \
%endif
%if %{static_libcrypto}
perl -pi -e "s|-lcrypto|%{_libdir}/libcrypto.a|g" Makefile
%endif
make
%if ! %{no_x11_askpass}
pushd x11-ssh-askpass-%{aversion}
%configure --libexecdir=%{_libexecdir}/openssh
xmkmf -a
make
popd
%endif
%if %{gtk2}
gtk2=yes
%else
gtk2=no
%endif
%if ! %{no_gnome_askpass}
pushd contrib
if [ $gtk2 = yes ] ; then
make gnome-ssh-askpass2
mv gnome-ssh-askpass2 gnome-ssh-askpass
else
make gnome-ssh-askpass1
mv gnome-ssh-askpass1 gnome-ssh-askpass
fi
popd
%endif
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p -m755 $RPM_BUILD_ROOT%{_sysconfdir}/ssh
mkdir -p -m755 $RPM_BUILD_ROOT%{_libexecdir}/openssh
mkdir -p -m755 $RPM_BUILD_ROOT%{_var}/empty/sshd
make install DESTDIR=$RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/etc/pam.d/
install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
install -d $RPM_BUILD_ROOT%{_libexecdir}/openssh
%if %{build6x}
install -m644 contrib/redhat/sshd.pam.old $RPM_BUILD_ROOT/etc/pam.d/sshd
%else
install -m644 $RPM_SOURCE_DIR/sshd $RPM_BUILD_ROOT/etc/pam.d/sshd
%endif
install -m755 contrib/redhat/sshd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/sshd
%if ! %{no_x11_askpass}
install x11-ssh-askpass-%{aversion}/x11-ssh-askpass $RPM_BUILD_ROOT%{_libexecdir}/openssh/x11-ssh-askpass
ln -s x11-ssh-askpass $RPM_BUILD_ROOT%{_libexecdir}/openssh/ssh-askpass
%endif
%if ! %{no_gnome_askpass}
install contrib/gnome-ssh-askpass $RPM_BUILD_ROOT%{_libexecdir}/openssh/gnome-ssh-askpass
%endif
%if ! %{scard}
rm -f $RPM_BUILD_ROOT/usr/share/openssh/Ssh.bin
%endif
%if ! %{no_gnome_askpass}
install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/
install -m 755 contrib/redhat/gnome-ssh-askpass.csh $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/
install -m 755 contrib/redhat/gnome-ssh-askpass.sh $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/
%endif
perl -pi -e "s|$RPM_BUILD_ROOT||g" $RPM_BUILD_ROOT%{_mandir}/man*/*
%clean
rm -rf $RPM_BUILD_ROOT
%triggerun server -- ssh-server
if [ "$1" != 0 -a -r /var/run/sshd.pid ] ; then
touch /var/run/sshd.restart
fi
%triggerun server -- openssh-server < 2.5.0p1
gawk 'BEGIN {IGNORECASE=1}
/^hostkey/ || /^hostdsakey/ {sawhostkey = sawhostkey + 1}
END {exit sawhostkey}' /etc/ssh/sshd_config
if [ $? -eq 1 ] ; then
echo HostKey /etc/ssh/ssh_host_rsa_key >> /etc/ssh/sshd_config
echo HostKey /etc/ssh/ssh_host_dsa_key >> /etc/ssh/sshd_config
fi
%triggerpostun server -- ssh-server
if [ "$1" != 0 ] ; then
/sbin/chkconfig --add sshd
if test -f /var/run/sshd.restart ; then
rm -f /var/run/sshd.restart
/sbin/service sshd start > /dev/null 2>&1 || :
fi
fi
%pre server
%{_sbindir}/groupadd -r -g %{sshd_gid} sshd 2>/dev/null || :
%{_sbindir}/useradd -d /var/empty/sshd -s /bin/false -u %{sshd_uid} \
-g sshd -M -r sshd 2>/dev/null || :
cp -r /etc/ssh /etc/ssh_bak
cp -r /etc/pam.d/sshd /etc/pam.d/sshd.bak
%post server
/sbin/chkconfig --add sshd
sed -i -e "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
sed -i -e "s/#UsePAM no/UsePAM yes/g" /etc/ssh/sshd_config
sed -i -e "s/#X11Forwarding no/X11Forwarding yes/g" /etc/ssh/sshd_config
echo "KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1" >>/etc/ssh/sshd_config
chmod +x /etc/init.d/sshd
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key
%postun server
/sbin/service sshd condrestart > /dev/null 2>&1 || :
%preun server
if [ "$1" = 0 ]
then
/sbin/service sshd stop > /dev/null 2>&1 || :
/sbin/chkconfig --del sshd
fi
%files
%defattr(-,root,root)
%doc CREDITS ChangeLog INSTALL LICENCE OVERVIEW README* PROTOCOL* TODO
%attr(0755,root,root) %{_bindir}/scp
%attr(0644,root,root) %{_mandir}/man1/scp.1*
%attr(0755,root,root) %dir %{_sysconfdir}/ssh
%attr(0600,root,root) %config(noreplace) %{_sysconfdir}/ssh/moduli
%if ! %{rescue}
%attr(0755,root,root) %{_bindir}/ssh-keygen
%attr(0644,root,root) %{_mandir}/man1/ssh-keygen.1*
%attr(0755,root,root) %dir %{_libexecdir}/openssh
%attr(4711,root,root) %{_libexecdir}/openssh/ssh-keysign
%attr(0755,root,root) %{_libexecdir}/openssh/ssh-pkcs11-helper
%attr(0755,root,root) %{_libexecdir}/openssh/ssh-sk-helper
%attr(0644,root,root) %{_mandir}/man8/ssh-keysign.8*
%attr(0644,root,root) %{_mandir}/man8/ssh-pkcs11-helper.8*
%attr(0644,root,root) %{_mandir}/man8/ssh-sk-helper.8*
%endif
%if %{scard}
%attr(0755,root,root) %dir %{_datadir}/openssh
%attr(0644,root,root) %{_datadir}/openssh/Ssh.bin
%endif
%files clients
%defattr(-,root,root)
%attr(0755,root,root) %{_bindir}/ssh
%attr(0644,root,root) %{_mandir}/man1/ssh.1*
%attr(0644,root,root) %{_mandir}/man5/ssh_config.5*
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/ssh/ssh_config
%if ! %{rescue}
%attr(2755,root,nobody) %{_bindir}/ssh-agent
%attr(0755,root,root) %{_bindir}/ssh-add
%attr(0755,root,root) %{_bindir}/ssh-keyscan
%attr(0755,root,root) %{_bindir}/sftp
%attr(0644,root,root) %{_mandir}/man1/ssh-agent.1*
%attr(0644,root,root) %{_mandir}/man1/ssh-add.1*
%attr(0644,root,root) %{_mandir}/man1/ssh-keyscan.1*
%attr(0644,root,root) %{_mandir}/man1/sftp.1*
%endif
%if ! %{rescue}
%files server
%defattr(-,root,root)
%dir %attr(0111,root,root) %{_var}/empty/sshd
%attr(0755,root,root) %{_sbindir}/sshd
%attr(0755,root,root) %{_libexecdir}/openssh/sftp-server
%attr(0644,root,root) %{_mandir}/man8/sshd.8*
%attr(0644,root,root) %{_mandir}/man5/moduli.5*
%attr(0644,root,root) %{_mandir}/man5/sshd_config.5*
%attr(0644,root,root) %{_mandir}/man8/sftp-server.8*
%attr(0755,root,root) %dir %{_sysconfdir}/ssh
%attr(0600,root,root) %config(noreplace) %{_sysconfdir}/ssh/sshd_config
%attr(0600,root,root) %config(noreplace) /etc/pam.d/sshd
%attr(0755,root,root) %config /etc/rc.d/init.d/sshd
%endif
%if ! %{no_x11_askpass}
%files askpass
%defattr(-,root,root)
%doc x11-ssh-askpass-%{aversion}/README
%doc x11-ssh-askpass-%{aversion}/ChangeLog
%doc x11-ssh-askpass-%{aversion}/SshAskpass*.ad
%{_libexecdir}/openssh/ssh-askpass
%attr(0755,root,root) %{_libexecdir}/openssh/x11-ssh-askpass
%endif
%if ! %{no_gnome_askpass}
%files askpass-gnome
%defattr(-,root,root)
%attr(0755,root,root) %config %{_sysconfdir}/profile.d/gnome-ssh-askpass.*
%attr(0755,root,root) %{_libexecdir}/openssh/gnome-ssh-askpass
%endif
%changelog
* Mon Jul 20 2020 Damien Miller djm@mindrto.org
* Sat Feb 10 2018 Darren Tucker dtucker@dtucker.net
* Sun Nov 16 2014 Nico Kadel-Garcia nakdel@gmail.com
* Wed Jul 14 2010 Tim Rice tim@multitalents.net
* Mon Jun 2 2003 Damien Miller djm@mindrot.org
* Mon May 12 2003 Damien Miller djm@mindrot.org
* Tue Oct 01 2002 Damien Miller djm@mindrot.org
* Mon Sep 30 2002 Damien Miller djm@mindrot.org
* Fri Jun 21 2002 Damien Miller djm@mindrot.org
* Fri May 10 2002 Damien Miller djm@mindrot.org
* Thu Mar 7 2002 Nalin Dahyabhai nalin@redhat.com 3.1p1-2
* Thu Mar 7 2002 Nalin Dahyabhai nalin@redhat.com 3.1p1-1
* Thu Mar 7 2002 Nalin Dahyabhai nalin@redhat.com 3.1p1-0
* Tue Mar 5 2002 Nalin Dahyabhai nalin@redhat.com SNAP-20020305
* Wed Feb 20 2002 Nalin Dahyabhai nalin@redhat.com SNAP-20020220
* Wed Feb 13 2002 Nalin Dahyabhai nalin@redhat.com 3.0.2p1-3
* Wed Jan 23 2002 Nalin Dahyabhai nalin@redhat.com 3.0.2p1-2
* Sat Dec 29 2001 Nalin Dahyabhai nalin@redhat.com
* Tue Dec 4 2001 Nalin Dahyabhai nalin@redhat.com 3.0.2p1-1
* Fri Nov 16 2001 Nalin Dahyabhai nalin@redhat.com 3.0.1p1-1
* Tue Nov 13 2001 Nalin Dahyabhai nalin@redhat.com
* Thu Nov 8 2001 Nalin Dahyabhai nalin@redhat.com 3.0p1-1
* Wed Nov 7 2001 Nalin Dahyabhai nalin@redhat.com
* Thu Sep 27 2001 Nalin Dahyabhai nalin@redhat.com 2.9p2-9
* Thu Sep 13 2001 Bernhard Rosenkraenzer bero@redhat.com 2.9p2-8
* Thu Sep 6 2001 Nalin Dahyabhai nalin@redhat.com 2.9p2-7
* Mon Aug 20 2001 Nalin Dahyabhai nalin@redhat.com 2.9p2-6
* Thu Aug 16 2001 Nalin Dahyabhai nalin@redhat.com
* Thu Aug 9 2001 Nalin Dahyabhai nalin@redhat.com
* Wed Aug 8 2001 Nalin Dahyabhai nalin@redhat.com
* Mon Aug 6 2001 Nalin Dahyabhai nalin@redhat.com
* Wed Jul 25 2001 Nalin Dahyabhai nalin@redhat.com
* Wed Jul 11 2001 Nalin Dahyabhai nalin@redhat.com
* Mon Jun 25 2001 Nalin Dahyabhai nalin@redhat.com
* Mon Jun 18 2001 Nalin Dahyabhai nalin@redhat.com
* Thu Jun 7 2001 Nalin Dahyabhai nalin@redhat.com
* Fri May 25 2001 Nalin Dahyabhai nalin@redhat.com
* Thu May 24 2001 Nalin Dahyabhai nalin@redhat.com
* Thu May 3 2001 Nalin Dahyabhai nalin@redhat.com
* Wed May 2 2001 Nalin Dahyabhai nalin@redhat.com
* Wed Apr 18 2001 Nalin Dahyabhai nalin@redhat.com
* Sun Apr 8 2001 Preston Brown pbrown@redhat.com
* Mon Apr 2 2001 Nalin Dahyabhai nalin@redhat.com
* Fri Mar 23 2001 Nalin Dahyabhai nalin@redhat.com
* Thu Mar 22 2001 Nalin Dahyabhai nalin@redhat.com
* Tue Mar 20 2001 Nalin Dahyabhai nalin@redhat.com
* Sat Mar 3 2001 Nalin Dahyabhai nalin@redhat.com
* Fri Mar 2 2001 Nalin Dahyabhai nalin@redhat.com
* Mon Feb 26 2001 Nalin Dahyabhai nalin@redhat.com
* Thu Feb 22 2001 Nalin Dahyabhai nalin@redhat.com
* Tue Feb 20 2001 Nalin Dahyabhai nalin@redhat.com
* Mon Feb 19 2001 Nalin Dahyabhai nalin@redhat.com
* Fri Feb 16 2001 Nalin Dahyabhai nalin@redhat.com
* Tue Feb 13 2001 Nalin Dahyabhai nalin@redhat.com
* Wed Feb 7 2001 Trond Eivind Glomsrxd teg@redhat.com
* Tue Jan 23 2001 Nalin Dahyabhai nalin@redhat.com
* Fri Jan 19 2001 Nalin Dahyabhai nalin@redhat.com
* Thu Jan 18 2001 Nalin Dahyabhai nalin@redhat.com
* Wed Dec 20 2000 Nalin Dahyabhai nalin@redhat.com
* Tue Dec 5 2000 Nalin Dahyabhai nalin@redhat.com
* Wed Nov 29 2000 Nalin Dahyabhai nalin@redhat.com
* Tue Nov 28 2000 Nalin Dahyabhai nalin@redhat.com
* Mon Nov 27 2000 Nalin Dahyabhai nalin@redhat.com
* Sun Nov 26 2000 Nalin Dahyabhai nalin@redhat.com
* Tue Nov 21 2000 Nalin Dahyabhai nalin@redhat.com
* Mon Nov 20 2000 Nalin Dahyabhai nalin@redhat.com
* Fri Nov 17 2000 Nalin Dahyabhai nalin@redhat.com
* Tue Nov 7 2000 Nalin Dahyabhai nalin@redhat.com
* Mon Oct 30 2000 Nalin Dahyabhai nalin@redhat.com
* Tue Oct 10 2000 Nalin Dahyabhai nalin@redhat.com
* Thu Oct 5 2000 Nalin Dahyabhai nalin@redhat.com
* Mon Oct 2 2000 Nalin Dahyabhai nalin@redhat.com
* Wed Sep 6 2000 Nalin Dahyabhai nalin@redhat.com
* Wed Aug 23 2000 Nalin Dahyabhai nalin@redhat.com
* Mon Jul 17 2000 Nalin Dahyabhai nalin@redhat.com
* Wed Jul 12 2000 Nalin Dahyabhai nalin@redhat.com
* Thu Jul 6 2000 Nalin Dahyabhai nalin@redhat.com
* Wed Jul 5 2000 Nalin Dahyabhai nalin@redhat.com
* Sun Jul 2 2000 Nalin Dahyabhai nalin@redhat.com
* Sat Jul 1 2000 Nalin Dahyabhai nalin@redhat.com
* Thu Jun 29 2000 Nalin Dahyabhai nalin@redhat.com
* Tue Jun 27 2000 Nalin Dahyabhai nalin@redhat.com
* Fri Jun 9 2000 Nalin Dahyabhai nalin@redhat.com
* Sat Jun 3 2000 Nalin Dahyabhai nalin@redhat.com
* Wed Mar 15 2000 Damien Miller djm@ibs.com.au
* Sun Dec 26 1999 Damien Miller djm@mindrot.org
* Mon Nov 15 1999 Damien Miller djm@mindrot.org
* Sat Nov 13 1999 Damien Miller djm@mindrot.org
* Tue Nov 09 1999 Damien Miller djm@ibs.com.au
* Mon Nov 08 1999 Damien Miller djm@ibs.com.au
* Sat Oct 30 1999 Damien Miller djm@ibs.com.au
* Fri Oct 29 1999 Damien Miller djm@ibs.com.au
* Thu Oct 28 1999 Damien Miller djm@ibs.com.au
* Wed Oct 27 1999 Damien Miller djm@ibs.com.au
手机扫一扫
移动阅读更方便
你可能感兴趣的文章