CentOS 7 でソースコードから Openssh をインストールする方法

CentOS 7 でソースコードから Openssh をインストールする方法

環境: CentOS 7.1.1503 最小インストール

依存パッケージをダウンロードします: yum -y install lrzsz zlib-devel perl gcc pam-devel

1. opensslをインストールし、最新のリリースバージョンを選択します: openssl-1.1.1g.tar.gz

1) OpenSSL ダウンロード アドレス: https://www.openssl.org/source/openssl-1.1.1g.tar.gz

2) システムにプリインストールされているopensslをアンインストールします。この手順は省略できます。

rpm -qa | grep openssl | grep -v lib

yum -y 削除 openssl-1.0.1e-42.el7.x86_64

3) インストール手順:

tar -zxvfopenssl-1.1.1g.tar.gz

cdcd openssl-1.1.1g

./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl -Wl,-rpath,/usr/local/openssl/lib 共有

作成 && インストール

4) ソフトリンクを作成する

ローカルマシンでopensslコマンドを実行すると、

ローカルディレクトリにopenssl.includeというディレクトリを作成します。

5) システム構成を更新する

echo "/usr/local/openssl/lib" >> /etc/ld.so.conf

ldconfig は

6) バージョンを確認する

openssl バージョン

2. opensshをインストールし、最新のリリースバージョンを選択します: openssh-8.3p1.tar.gz

1) OpenSSH ダウンロード アドレス: https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.3p1.tar.gz

2) システムのopenssh設定ファイルをバックアップする

cp -r /etc/sysconfig/sshd /etc/sysconfig/sshd.bak

cp -r /sys/fs/cgroup/systemd/system.slice/sshd.service /sys/fs/cgroup/systemd/system.slice/sshd.service.bak

cp -r /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak

cp -r /usr/lib/systemd/system/sshd.socket /usr/lib/systemd/system/sshd.socket.bak

cp -r /usr/lib/systemd/system/[email protected] /usr/lib/systemd/system/[email protected]

cp -r /usr/lib/systemd/system/sshd-keygen.service /usr/lib/systemd/system/sshd-keygen.service.bak

3) システムにプリインストールされているopensshをアンインストールします。この手順は省略できます。

rpm -qa | grep openssh

yum -y 削除 openssh-server-6.6.1p1-11.el7.x86_64 openssh-clients-6.6.1p1-11.el7.x86_64 openssh-6.6.1p1-11.el7.x86_64

4) openssh 設定ファイルをバックアップします。この手順は省略できます。

cp -r /etc/ssh /etc/ssh.bak

rm -rf /etc/ssh #このステップは非常に重要なので必ず実行してください

5) インストール手順

tar -zxvf openssh-8.3p1.tar.gz

openssh-8.3p1をインストールします

./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/openssl/include --with-ssl-dir=/usr/local/openssl --with-zlib --with-md5-passwords --with-pam --with-ssl-engine

作成 && インストール

6) ソフトリンクを作成する

sshd は、openssh の sbin ディレクトリにあります。

ln -s /usr/local/openssh/bin/ssh /usr/bin/ssh

ln -s /usr/local/openssh/bin/ssh-add /usr/bin/ssh-add

ssh-keygen は、openssh のキーを生成するために使用します。

ssh-keyscan は、以下のコマンドで実行します。

7) バックアップした設定ファイルを復元する

mv /etc/sysconfig/sshd.bak /etc/sysconfig/sshd

mv /sys/fs/cgroup/systemd/system.slice/sshd.service.bak /sys/fs/cgroup/systemd/system.slice/sshd.service

mv /usr/lib/systemd/system/sshd.service.bak /usr/lib/systemd/system/sshd.service

mv /usr/lib/systemd/system/sshd.socket.bak /usr/lib/systemd/system/sshd.socket

mv /usr/lib/systemd/system/[email protected] /usr/lib/systemd/system/[email protected]

mv /usr/lib/systemd/system/sshd-keygen.service.bak /usr/lib/systemd/system/sshd-keygen.service

8) OpenSSHのバージョンを確認する

ssh -V

9) OpenSSH設定ファイルを修正してルートログインを許可する

vi /etc/ssh/sshd_config

#PermitRootLogin prohibit-password を PermitRootLogin yes に変更します

10) 起動時にsshdサービスが開始するように設定する

chkconfig sshd オン

11) sshdサービスを再起動する

systemctl sshd を再起動します && systemctl sshd を再起動します && systemctl sshd を再起動します && systemctl sshd を再起動します &

この時点で、opensshサービスのインストールは完了です。心配な場合は、マシンを再起動してください。

ps: Linux で openssl をコンパイルしてインストールするときにダイナミック リンク ライブラリ .so が生成されない問題を解決する方法を見てみましょう。

公式サイトで提供されている config コマンドは、デフォルトでは .so を生成しません。解決策は、./config を実行するときに shared パラメータを追加することです。例:

./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl -Wl,-rpath,/usr/local/ssl/lib 共有

次にmake && make installを実行します

要約する

Centos 7 ソースコードから openssh をインストールする方法についての記事はこれで終わりです。 Centos 7 ソースコードから openssh をインストールする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。 今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • CentOS のデフォルトの SSH ポート番号を変更する方法の例
  • CentOS7でSSHポート番号を追加または変更する方法
  • CentOS7でSSHログインポートを変更する方法
  • CentOS7にsshをインストールして設定する

<<:  JavaScript における型の必須および暗黙的な変換の詳細な説明

>>:  NavicatがMySQLに接続すると、10060、1045エラーとmy.iniの場所が報告されます。

推薦する

Mysqlは日付範囲の抽出方法を指定します

データベースを操作する過程では、いくつかの指標を日付別にまとめたり、一定期間内の合計金額をカウントし...

MySQL のロックとトランザクションの簡単な分析

MySQL 自体はファイルシステムに基づいて開発されましたが、ロックの存在が異なります。データベース...

Docker が elasticsearch を起動するときのメモリ不足の問題と解決策

質問Docker が elasticsearch をインストールして起動するときにメモリが不足するシ...

Windows プラットフォームでの MySQL のインストールと設定方法と注意事項

2.1、msiインストールパッケージ2.1.1、インストール特に重要なのは、インストール前に、元の ...

HTMLの表のtbodyは上下左右にスライドできます

テーブル ヘッダーが固定されている場合は、それを 2 つのテーブルに分割する必要があります。1 つの...

プライベートレジストリ内の画像を照会または取得する方法

Dockerはプライベートレジストリ内のイメージを照会または取得するために、 docker 検索 1...

Node.jsミドルウェアの仕組みの詳細な説明

目次Express ミドルウェアとは何ですか? Expressミドルウェアを作成するための要件Exp...

MySQL での mysqladmin 日常管理コマンドの概要 (必読)

mysqladmin ツールの使用形式は次のとおりです。 mysqladmin [オプション] コ...

XHTML CSSを使用して正式なブログを書く

ブログの正式名称は「Web log」で、中国語で「ネットワークログ」を意味します。後にブログに短縮さ...

Reactはページの透かし効果の全プロセスを実現します

目次序文1. 使用例2. 実施プロセス3. コンポーネントコード要約する序文1. cavans では...

メタタグを簡単に説明すると

META タグは、一般的に タグと呼ばれ、HTML Web ページのソース コード内の重要な HTM...

MySQLのトランザクション管理操作の詳細な説明

この記事では、MySQL のトランザクション管理操作について説明します。ご参考までに、詳細は以下の通...

vueはel-tableの列幅の適応を完璧に実現します

目次背景技術的ソリューション具体的な実装要約する背景Element UI は、PC で人気の Vue...

MySQLデータベースの基本構文と操作

MySQLデータベースの基本構文DDL操作データベース作成構文: create database デ...