SSH(Secure Shell)は、エンドツーエンドの暗号化ネットワークシステムであり、ユーザーがクライアントからサーバーまたはシステムにリモートでアクセスできるようにします。非対称暗号化セキュリティシステムにより、安全でないクライアントネットワークからでもサーバーにアクセスすることは非常に安全です。ただし、非アクティブまたはネットワーク信号の不良が原因で、SSHリモートアクセスが切断される場合があります。理由が何であれ、Linux管理者として、SSHセッションとプロセスを切断後も実行し続けることは重要な仕事です。
SSHセッションが切断される理由
一言で言えば、SSHトンネルプロキシエラー、ネットワークタイムアウト、間違ったネットワークポートの使用、またはrootユーザーとしてシステムにログインしていない場合でも、SSHリモート管理から切断される可能性があります。この投稿では、SSHに関して最もよくある質問について説明します。切断が発生した後もSSHセッションとプロセスを実行し続ける方法。
1。 screen
を使用してSSHセッションを実行し続ける コマンド
画面コード> commandは、SSH管理で最もよく使用される便利なコマンドです。
画面コード> コマンドは、IPv4アドレスとIPv6アドレスの両方のホスト名の問題を解決できます。ルート機能を使用すると、
screen
コマンドは、クライアント側からサーバー側へのセッションをログアウトまたは終了できます。 Linux SSHの初心者の方のために、 screen
のマニュアルをインストールして見つけるのに役立つCLIをいくつか紹介します。 コマンド。
Ubuntuの場合:
$sudoaptインストール画面
OpenSUSEの場合:
$sudozypperインストール画面
Arch Linuxの場合:
---$ sudo pacman -S screen
Red Hat Enterprise Linuxの場合:
$sudoyumインストール画面
インストールが完了したら、システムの開始画面の監視を開始します。
$ screen $ screen --help
サーバーにSSHでアクセスできるようになったら、リモートでアクセスできるようにします。ステーションからの長時間の作業を計画しているが、SSHクライアントを停止したくない場合は、 screen
を使用できます。 指図。これにより、画面セッションを切り離すことができますが、心配する必要はありません。開始したタスクは完了します。
画面を切り離すには、 Ctrl-A
を押します 次にCtrl-D
キーボードから。ログインして、端末からいつでも作業の進行状況を監視できます。セッションで既存のものに再接続または接続するには、次のCLIを使用します。
$ screen -rscreen -D -r
2。 tmux
を使用してSSHセッションを実行し続ける ツール
tmuxまたはターミナルマルチプレクサは、プログラマーやシステム管理者にとって非常に人気のある便利なツールであり、ユーザーは同じターミナルでプログラムを切り替えることができます。 SSHセッションをバックグラウンドで実行し続けるには、 tmux
非常に迅速な解決策になる可能性があります。プロセスがバックグラウンドで実行され続けているアプリケーションをデタッチおよび再アタッチできます。 tmux
のインストール手順は次のとおりです Linuxディストリビューション用。
Arch Linuxの場合:
$ sudo pacman -S tmux
Red Hat Enterprise Linuxの場合:
$ sudo yum install tmux
Ubuntuの場合:
$ sudo apt-get install tmux
OpenSUSEの場合:
$ sudo zypper install tmux
tmux
をインストールした後 、tmuxセッション
を開始します ターミナルコマンドを使用します。インストールするのにそれほど時間はかかりません。インストールが完了したら、 tmux
の使用を開始できます 。 tmux
を開始するには 、ターミナルにtmuxと入力するだけです。
$ tmux
すべてのSSHセッションをバックグラウンドで実行し続けるために複数のターミナルマルチプレクサを実行する必要がある場合、その場合、 tmux
を切り替えるのが難しい場合があります。 tmux
へ 。ある形式から別の形式に切り替えるためのコマンドラインは次のとおりです。
$ tmux detach $ tmux attach $ tmux attach -t 2
すべてのtmux
を確認するには 画面はtmuxlist
を使用します コマンド。
$ tmux ls
3。 byobu
を使用してSSHセッションを実行し続ける ツール
byobuツールは、主にLinuxでのリモートSSH管理と画面上の監視に使用されます。これはオープンソースのソフトウェアであり、 tmux
と一緒に使用できます。 またはscreen
道具。 byobu
で現在のステータス、通知、メッセージを確認できます 道具。 屏風コード> Ubuntuにはデフォルトでインストールされています。ただし、そうでない場合は、Linuxマシン内にインストールできます。
屏風コード>かどうかを確認するには 他のバージョンの屏風をチェックして、システムにインストールされているかどうかを確認します。
$ byobu --version
次に、屏風を有効にします。切断した後でも、SSHセッションをバックグラウンドで実行し続けるのに役立ちます。
$ byobu-enable
ここでは、インストールプロセスについてCLIで説明しています。
Ubuntuの場合:
$ sudo apt install byobu
OpenSUSEの場合:
$ sudo zypper addrepo https://download.opensuse.org/repositories/utilities/openSUSE_Leap_42.3/utilities.repo
$ sudo zypper refresh $ sudo zypper install byobu
Arch Linuxの場合:
$ yaourt -S byobu $ packer -S byobu
Red Hat Enterprise Linuxの場合:
$ sudo yum install byobu
Fedoraの場合:
$ sudo dnf install byobu
byobu
を始めるには 、ターミナルに屏風と入力してEnterキーを押すだけです。
$屏風
ここで、 tmux
を使用している場合 またはscreen
、バックエンドで共同作業するために、それらのいずれかを選択して選択できます。
$ byobu-select-backend
これで、切断後もSSHセッションをバックグラウンドで管理および実行し続けることができ、システムキーボードのファンクションキーを使用できます。屏風と一緒にSSHを使い始めるには、 CTRL + SHIFT + F2
を押します。 キーボードからSSH環境を有効にします。 SSHセッションを前後に移動するには、 ALT + UP
を使用できます。 およびALT+ DOWN
。
SSHセッションを切断するには、 F6
を押します キーボードから。さて、セッションを切断せずに切断することを探しているなら、ここに行きます。 SSHセッションを切り離して接続を維持するには、 SHIFT + F6
を押します。 。これがもう1つの追加のキーボードコマンドです。現在の画面セッションのみをアクティブに保ち、他のすべてのウィンドウを閉じるには、 ALT + F6
を押します。 。
4。 nohup
を使用してSSHセッションを実行し続ける コマンド
nohup
または「nohangup」コマンドは、画面またはtmuxの非常に便利な代替ツールです。また、ユーザーは、切断された後もSSHセッションを実行し続けることができます。 nohup
コマンドは、シグナルのハングアップ(SIGHUP)を回避することにより、すべてのプロセスをバックグラウンドで実行するようにシステムに指示します。
nohup
を確認するには Linuxターミナルのマニュアルとオプションについては、ターミナルに次のコマンドを入力してEnterキーを押してください。
$nohupオプション
現在アクティブなジョブリストを確認するには、 -l
を使用します 端末からのコマンド。
$ jobs -l </ pre>ここで、SSH接続の場合、接続が失われないようにし、切断後もセッションを実行し続けるには、ジョブの後にnohupコマンドラインを使用します。 nohupコマンドと一緒にcatコマンドを使用して、テキストファイルでジョブの出力リストを取得することもできます。
$ nohup ./hello.sh$ cat nohup.outバックグラウンドでプロセスを実行するには、
&
を使用できますnohup
の直後の記号 指図。たとえば、バックグラウンドでwordpress-408970-1286763.cloudwaysapps.comのpingをテストする場合、コマンドラインは次の行のようになります。そして、あなたの仕事が終わったと思うとき、結果を見るために、pgrep
を使用してください コマンド。$ nohup ping www.ubuntupit.com&$ pgrep -a ping5。
disown
を使用してSSHセッションを実行し続ける コマンドシステムルート権限がない場合は、これで問題が解決する可能性があります。
disown
コマンドを実行すると、実行中のシステムログからすべてのタスクをリストから外すことができます。したがって、進行中のプロセスを非表示にして、すべての自動ログアウトエラーまたはシグナルのハングアップ(SIGHUP)を回避できます。実際には、diswonプロセス管理コマンドを使用して、タスクを非表示にすることでSSHセッションを実行し続けることができます。
タスクマネージャからタスクを削除または非表示にするには、ターミナルでdiswonコマンドを使用します。
$ disownタスクの現在のステータスを確認するには、currentshellコマンドを使用します。
$現在のシェル1行のターミナルコマンドでタスクのリストを設定することもできます。
$ disown jobs1 $ disown jobs1 jobs2 ... jobsnまた、タスクリストを確認するには、
-l
を使用します コマンド。$ jobs -l </ pre>ウィンドウから現在のすべてのジョブを削除するには、
-a
と入力します disownコマンドに続く構文。$ disown -aウィンドウから1つだけまたは実行中のジョブを削除するには、
-r
を使用します diswonコマンドに続く構文。$ disown -rSSHの場合、セッションが接続された後にバックグラウンドでジョブを実行するには、
-h
を使用します 構文。このプロセスにより、切断後もSSHセッションを実行し続けることができます。$ disown -h jobID $ disown -h%2
タイムアウト
の修正 RHELでのSSHのエラーRed Hat Enterprise Linux(RHEL)でSSHに接続すると、タイムアウトの問題が頻繁に発生し、接続が失われる可能性があります。この問題は、クライアント側またはホスト側のいずれかからの無効な応答時間が原因で発生します。 Red Hatルートディレクトリで、
sshd_config.txt
を見つけて編集する必要があります。 これらのタイムアウトの問題を解決するためのファイル。完了したら、切断した後でもSSH接続を取り戻すことができます。
sshd_config.txt
の中にあります 、ファイルには、ClientAliveInterval
という名前の2つのオプションがあります。 およびClientAliveCountMax
、サーバーからクライアントへの応答時間を最大化するには、これらのログファイルを編集する必要があります。タイムアウト間隔は、ClientAliveIntervalとClientAliveCountMaxの値を掛けて計算されます。必要なのは、システムとネットワークの応答期間に応じて、この2つの値の期間を編集することだけです。クライアント間隔の終了に10分、クライアント数に5回の時間を最大化してから、
sshd_config.txt
内のテキストレジストリを最大化するとします。 ファイルは以下のようになります。次に、SSHを再起動します。ClientAliveInterval 10mClientAliveCountMax 5最終的な考え
システム管理者にとって、SSHセッションとプロセスを実行し続けることは、クライアントを満足させ、タスクを遂行するための重要な仕事です。切断され、頻繁なセッションが失われることは、非常に迷惑で面倒です。そのため、この投稿では、SSHセッションが切断される理由について説明し、説明し、切断後もSSHセッションを実行し続けるためのすべての可能な方法について説明しました。
SSHセッションの切断の手間を経験したことがあり、それがどれほど厄介であるかを知っている場合は、経験を私たちと共有してください。また、コメントセクションでこの投稿に関連する何かを追加したり質問したりする場合は、コメントしてください。この投稿をソーシャルメディアで友達と共有することを忘れないでください。
Linux