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の場所が報告されます。

推薦する

React+Ant Design開発環境をセットアップするための実装手順

基礎1. スキャフォールディングを使用してプロジェクトを作成し、開始する1.1 足場を設置する: n...

HTML ページにミュージック ビデオを追加する例

1. ビデオタグFirefoxでは自動再生をサポートしますが、GoogleとIEではサポートしません...

キープアライブキャッシュをクリアする方法の詳細なグラフィック説明

目次オープニングシーンv-for を使用した直接レンダリングカスタムコンポーネントで直接レンダリング...

MySQL でデータの重複挿入を回避する 4 つの方法

最も一般的な方法は、フィールドに主キーまたは一意のインデックスを設定することです。重複データを挿入す...

Win2008 R2 mysql 5.5 zip 形式 mysql のインストールと設定

Win2008 R2 zip形式のMySQLのインストールと設定1. Baidu MySQL 5.6...

ミニプログラム開発ツールのソースコードからの基本実装の分析

目次ミニプログラム開発者ツールのソースコードを表示する方法ミニプログラムアーキテクチャ設計1. ミニ...

CSS で要素フローティングとクリアフローティングを実装する方法

フローティングの基礎標準ドキュメント フローでは、要素は塊級元素と行內元素の 2 種類に分けられます...

Vueコンポーネント通信のさまざまな方法の詳細な説明

目次1. 父から息子へ2. 息子から父へ3. 親子関係のないコンポーネントの値の転送4. ヴュークス...

Vue はタブ ラベルを実装します (ラベルが自動スクロールを超える)

作成されたタブラベルがページの表示領域を超えると、タブラベルの距離だけ自動的にスクロールされます。ま...

MySQL 学習ノート: 完全な SELECT ステートメントの使用例と詳細な説明

この記事では、MySQL 学習ノートの select ステートメントの完全な使用方法を例を使用して説...

MySQL MHA の高可用性構成とフェイルオーバーの詳細な導入手順

目次1. MHAの紹介1. MHAとは何ですか? 2. MHAの構成3. MHAの特徴2. MySQ...

MySQL が my.cnf を読み込む順序の詳細

目次MySQLがmy.cnfを読み込む順序1. mysql.server の起動方法2. mysql...

MySQL スライディングオーダー問題の原理と解決の例分析

この記事では、例を使用して、MySQL スライディング順序問題の原理と解決方法を説明します。ご参考ま...

vuex での mapState の考え方の応用

目次1. マップ方式2. 応用背景:需要開発プロセス中に、一部のインターフェースは、ページに表示する...

CentOS 7 構成 Tomcat9+MySQL ソリューション

Tomcatの設定まずTomcatをインストールするTomcatのインストールは、Tomcatのイン...