GNU/Linux >> Linux の 問題 >  >> Linux

切断後もリモートSSHセッションを実行し続ける方法

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 ping 

5。 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 -r 

SSHの場合、セッションが接続された後にバックグラウンドでジョブを実行するには、 -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
  1. Ssh – Ssh経由で接続した直後にスクリプトを実行する方法は?

  2. Fish Shellでブール値を使用する方法は?

  3. 実行中の画面セッションを一覧表示するには?

  1. 切断後もリモートSSHセッションとプロセスを実行し続けるための5つの方法

  2. ssh からログアウトした後もプログラムを実行し続けるにはどうすればよいですか?

  3. sshで実行されているqemu:終了する方法は?

  1. SSHセッションからログアウトした後もコマンドを実行し続ける4つの方法

  2. Ssh – Sshセッションが切断された後もプロセスを実行し続けますか?

  3. SSHセッションを存続させる方法