○ openssh-7.5p1 (rpm) の作成

・オリジナルソースからrpmパッケージを作成します
・sftpでコマンドライン編集を可能にします(libedit)
・hosts.allow,hosts.deyで制御します(libwrap)

・7.2p1以降 ssh-keygen -Aオプションでは rsa1キーを作成しません
・rsa, dsa, ecdsa, ed25519 を作成します

・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:openssh-7.5p1.tar.gz (http://www.openssh.com/portable.html)
:x11-ssh-askpass-1.2.4.1.tar.gz (http://www.jmknoble.net/software/)

(http://pkgs.fedoraproject.org/repo/pkgs/openssh/)
:openssh-6.7p1-*-tcp-wrappers.patch  (http://pkgs.fedoraproject.org/cgit/rpms/openssh.git/)

○インストール環境

:OS CentOS 6.9
:selinux disabled or permissive
:インストール先 
:作業 ~/src ~/rpmbuild
:言語 LANG=ja_JP.UTF-8
:ユーザー rootで実行

・メンテナンスの場合は一般ユーザから行います



○openssh-7.5p1

○rpmbuildに必要な開発パッケージ

・specファイルに記述されているものです
・libX11-devel(Xlib.h)、libXt-devel(Intrinsic.h) が必要です
・specファイルで要求されないもので、gtk2-devel が必要です
紫色部分 パッチで追加しています

BuildRequires: perl, openssl-devel
BuildRequires: /bin/login
BuildRequires: glibc-devel, pam
BuildRequires: /usr/include/security/pam_appl.h
BuildRequires: /usr/include/X11/Xlib.h
BuildRequires: pkgconfig
BuildRequires: krb5-devel
BuildRequires: krb5-libs
BuildRequires: libedit, libedit-devel
BuildRequires: autoconf, automake, tcp_wrappers-devel

○opensshのビルド・インストール

・x11-ssh-askpass-1.2.4.1.tar.gzをダウンロードしておきます
・ソースファイル、patchファイルは ~ ディレクトリにおきます

# cd ~/src
[root@mars:~/src]
# mkdir openssh
# tar zxf ../openssh-7.5p1.tar.gz
# cp openssh-7.5p1/contrib/redhat/openssh.spec ~/rpmbuild/SPECS
# rm -rf openssh-7.5p1
# cd ~
[root@mars:~]
# cp openssh-7.5p1.tar.gz rpmbuild/SOURCES
# cp x11-ssh-askpass-1.2.4.1.tar.gz rpmbuild/SOURCES
# cp openssh-libwrap.patch rpmbuild/SOURCES

・パッチを当てます (下記参照)
・パッチは ~ ディレクトリにおきます

# patch -p0 < openssh-libedit-libwrap-spec.patch
# cd rpmbuild/SPECS
[root@mars:~/rpmbuild/SPECS]
# chown root:root openssh.spec
# rpmbuild -ba --clean --rmsource --define 'dist .mn' openssh.spec
# mv openssh.spec ~/src/openssh
# cd ../RPMS/i686
[root@mars:~/rpmbuild/RPMS/i686]

・作成されたパッケージ
 openssh-7.5p1-1.mn.i686.rpm
 openssh-askpass-7.5p1-1.mn.i686.rpm
 openssh-askpass-gnome-7.5p1-1.mn.i686.rpm
 openssh-clients-7.5p1-1.mn.i686.rpm
 openssh-server-7.5p1-1.mn.i686.rpm

# rm *debuginfo*
# mv *.rpm ~/src/openssh
# cd ../../SRPMS
[root@mars:~/rpmbuild/SRPMS]

・作成されたパッケージ
 openssh-7.5p1-1.mn.src.rpm

# mv *.rpm ~/src/openssh

・インストール

# cd ~/src/openssh
[root@mars:~/src/openssh]
# rpm -Uvh openssh-clients* openssh-server* \
openssh-7.5p1-1.mn.i686.rpm openssh-askpass-7.5p1-1.mn.i686.rpm

openssh-libwrap.patch

・openssh-6.7p1-debian-restore-tcp-wrappers.patchをあてて差分をとっています

openssh-libedit-libwrap-spec.patch

・CentOS 6 の開発パッケージに合わせます
・7.2p1以降 sloginのリンクはつくられません

○/etc/pam.d/sshd

・インストールされるpam認証ファイルは、CentOS 6.x に対応していないので修正します

#%PAM-1.0
#auth       required     pam_stack.so service=system-auth
#account    required     pam_nologin.so
#account    required     pam_stack.so service=system-auth
#password   required     pam_stack.so service=system-auth
#session    required     pam_stack.so service=system-auth
auth       include     system-auth
account    required    pam_nologin.so
account    include     system-auth
password   include     system-auth
session    include     system-auth

○ Copyright(c) 528p.com All Rights Reserved.