📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
編集の要約なし |
|||
| (同じ利用者による、間の6版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
SSHサーバを構成し、リモート端末からサーバに接続して操作できるようにする。<br> | SSHサーバを構成し、リモート端末からサーバに接続して操作できるようにする。<br> | ||
SSHサーバは、RHELおよびSUSEを最小インストールした場合でも、標準でOpenSSHがインストールされるため、追加インストールする必要はない。<br> | |||
<br><br> | <br><br> | ||
| 75行目: | 75行目: | ||
{| class="wikitable" | style="background-color:#fefefe;" | {| class="wikitable" | style="background-color:#fefefe;" | ||
|- | |- | ||
! | ! 項目 !! 値 !! 説明 | ||
! | |||
! | |||
|- | |- | ||
| Port || ポート番号<br><br>デフォルトは、22 || sshdが使用するポート番号 | | Port || ポート番号<br><br>デフォルトは、22 || sshdが使用するポート番号 | ||
| 84行目: | 82行目: | ||
|- | |- | ||
| ListenAddress || host<br>IPv4のIPアドレス または IPv4のIPアドレス:<ポート番号><br>IPv6のIPアドレス または IPv6のIPアドレス:<ポート番号><br><br>デフォルトは、以下の2つのアドレスである。<br>[::]:22<br>0.0.0.0:22 || sshdが接続を受け付けるローカルアドレスを指定する。<br>Portが未指定の場合は、[Port]項目で指定したポート番号に対してListenする。 | | ListenAddress || host<br>IPv4のIPアドレス または IPv4のIPアドレス:<ポート番号><br>IPv6のIPアドレス または IPv6のIPアドレス:<ポート番号><br><br>デフォルトは、以下の2つのアドレスである。<br>[::]:22<br>0.0.0.0:22 || sshdが接続を受け付けるローカルアドレスを指定する。<br>Portが未指定の場合は、[Port]項目で指定したポート番号に対してListenする。 | ||
|- | |- class="row-disabled" | ||
| Protocol || 1<br>2<br>1,2 || sshdがサポートするSSHのプロトコルバージョン。<br>SSH1のみを使用する場合は1、SSH2のみを使用する場合は2、<br>両方使用する場合は"1,2"と設定する。<br><br><u>OpenSSH 7.4以降では、廃止された。</u> | | Protocol || 1<br>2<br>1,2 || sshdがサポートするSSHのプロトコルバージョン。<br>SSH1のみを使用する場合は1、SSH2のみを使用する場合は2、<br>両方使用する場合は"1,2"と設定する。<br><br><u>OpenSSH 7.4以降では、廃止された。</u> | ||
|- | |- | ||
| 90行目: | 88行目: | ||
|- | |- | ||
| rekeylimit || 第1項目: 整数値(通信データ量)または<code>default</code><br>K、M、Gのサフィックスも使用可能<br><br>第2項目: 整数値または時間(週、日、時、分、秒)または<code>none</code><br>第2項目において、分で使用する場合は、<code>5m</code>等と記述する。(この場合は、5分)<br>時で使用する場合は、<code>1h</code>等と記述する。(この場合は、1時間)<br><br>その他、<code>s</code>、<code>S</code>、<code>m</code>、<code>M</code>、<code>h</code>、<code>H</code>、<code>d</code>、<code>D</code>、<code>w</code>、<code>W</code>が使用できる。<br>また、これらを組み合わせて使用することもできる。(<code>1h30m</code>等)<br><br>デフォルトは、第1項目は0、第2項目は0 || SSHは、通信を暗号化するためにホストとクライアント間でセッション鍵を交換している。<br>暗号化を堅牢に行うために都度鍵を変更している。<br><br>第1項目に<code>default</code>を指定する場合、1[GB]から4[GB]の間の適切なタイミングで再生成を行う。<br><br>第2項目の<code>0</code>は<code>none</code>と等価である。 | | rekeylimit || 第1項目: 整数値(通信データ量)または<code>default</code><br>K、M、Gのサフィックスも使用可能<br><br>第2項目: 整数値または時間(週、日、時、分、秒)または<code>none</code><br>第2項目において、分で使用する場合は、<code>5m</code>等と記述する。(この場合は、5分)<br>時で使用する場合は、<code>1h</code>等と記述する。(この場合は、1時間)<br><br>その他、<code>s</code>、<code>S</code>、<code>m</code>、<code>M</code>、<code>h</code>、<code>H</code>、<code>d</code>、<code>D</code>、<code>w</code>、<code>W</code>が使用できる。<br>また、これらを組み合わせて使用することもできる。(<code>1h30m</code>等)<br><br>デフォルトは、第1項目は0、第2項目は0 || SSHは、通信を暗号化するためにホストとクライアント間でセッション鍵を交換している。<br>暗号化を堅牢に行うために都度鍵を変更している。<br><br>第1項目に<code>default</code>を指定する場合、1[GB]から4[GB]の間の適切なタイミングで再生成を行う。<br><br>第2項目の<code>0</code>は<code>none</code>と等価である。 | ||
|- | |- class="row-disabled" | ||
| KeyRegenerationInterval || 時間(秒) || SSH1では、サーバ鍵を指定した間隔ごとに自動的に再生成される。<br>その自動的に鍵を再生成する間隔を指定する。<br><br><u>OpenSSH 7.x以降では、廃止された。</u> | | KeyRegenerationInterval || 時間(秒) || SSH1では、サーバ鍵を指定した間隔ごとに自動的に再生成される。<br>その自動的に鍵を再生成する間隔を指定する。<br><br><u>OpenSSH 7.x以降では、廃止された。</u> | ||
|- | |- class="row-disabled" | ||
| ServerKeyBits || ビット数 || SSH1で使用されるサーバ鍵のビット数。(SSH2では無効)<br>最小値は512で、デフォルトは1024。<br>なお、ServerKeyBitsが対象としている鍵は、ephemeral keyである。(生成されたホスト鍵ではない)<br><br><u>現在のOpenSSHでは、廃止された。</u> | | ServerKeyBits || ビット数 || SSH1で使用されるサーバ鍵のビット数。(SSH2では無効)<br>最小値は512で、デフォルトは1024。<br>なお、ServerKeyBitsが対象としている鍵は、ephemeral keyである。(生成されたホスト鍵ではない)<br><br><u>現在のOpenSSHでは、廃止された。</u> | ||
|- | |- | ||
| 101行目: | 99行目: | ||
| LoginGraceTime || 時間(週、日、時、分、秒)<br>分で使用する場合は、<code>5m</code>等と記述する。(この場合は、5分)<br>時で使用する場合は、<code>1h</code>等と記述する。(この場合は、1時間)<br><br>その他、<code>s</code>、<code>S</code>、<code>m</code>、<code>M</code>、<code>h</code>、<code>H</code>、<code>d</code>、<code>D</code>、<code>w</code>、<code>W</code>が使用できる。<br>また、これらを組み合わせて使用することもできる。(<code>1h30m</code>等)<br><br>デフォルトは、120 || ユーザが指定時間内にログインできない場合、サーバの接続を自動的に切断する。 | | LoginGraceTime || 時間(週、日、時、分、秒)<br>分で使用する場合は、<code>5m</code>等と記述する。(この場合は、5分)<br>時で使用する場合は、<code>1h</code>等と記述する。(この場合は、1時間)<br><br>その他、<code>s</code>、<code>S</code>、<code>m</code>、<code>M</code>、<code>h</code>、<code>H</code>、<code>d</code>、<code>D</code>、<code>w</code>、<code>W</code>が使用できる。<br>また、これらを組み合わせて使用することもできる。(<code>1h30m</code>等)<br><br>デフォルトは、120 || ユーザが指定時間内にログインできない場合、サーバの接続を自動的に切断する。 | ||
|- | |- | ||
| PermitRootLogin || yes<br>no<br>prohibit-password<br>(without-passwordと同様であるが、without-passwordは非推奨)<br>forced-commands-only<br><br>デフォルトは、yes || rootでのログインを許可するかどうかを指定する。<br><br>prohibit-password(または、非推奨のエイリアスであるwithout-password)は、<br>rootに対してパスワード認証およびキーボード対話型認証が無効になる。<br><br>forced-commands-onlyは、rootユーザの直接ログインを拒否する(公開鍵認証によるrootログインが許可される)が、<br>root権限を使用するコマンドのアクセスは許可する。<br>例えば、rootログインが通常許可されない場合でも、リモートバックアップを取るのに便利な場合がある。<br>ただし、forced-commands-onlyは、他の全ての認証方法において、rootに対して無効になることに注意する。 | | PermitRootLogin || yes<br>no<br>prohibit-password<br>(without-passwordと同様であるが、without-passwordは非推奨)<br>forced-commands-only<br><br>デフォルトは、yes || rootでのログインを許可するかどうかを指定する。<br><br>yesの場合、rootユーザで直接SSHログインが可能になる。<br><br>noの場合、rootユーザでの直接SSHログインが禁止する。<br><br>prohibit-password(または、非推奨のエイリアスであるwithout-password)は、<br>rootに対してパスワード認証およびキーボード対話型認証が無効になる。<br><br>forced-commands-onlyは、rootユーザの直接ログインを拒否する(公開鍵認証によるrootログインが許可される)が、<br>root権限を使用するコマンドのアクセスは許可する。<br>例えば、rootログインが通常許可されない場合でも、リモートバックアップを取るのに便利な場合がある。<br>ただし、forced-commands-onlyは、他の全ての認証方法において、rootに対して無効になることに注意する。 | ||
|- | |- | ||
| StrictModes || yes<br>no<br>デフォルトは、yes || ログイン前にユーザのディレクトリやファイルのパーミッションをチェックする。 | | StrictModes || yes<br>no<br>デフォルトは、yes || ログイン前にユーザのディレクトリやファイルのパーミッションをチェックする。 | ||
| 108行目: | 106行目: | ||
|- | |- | ||
| MaxSessions || 整数値<br>デフォルトは、10 || 最大同時接続数 | | MaxSessions || 整数値<br>デフォルトは、10 || 最大同時接続数 | ||
|- | |- class="row-disabled" | ||
| RSAAuthentication || yes<br>no || RSA認証を有効にする。<br>RSA認証は、SSH1のみ有効にすることができる。<br><br><u>現在のOpenSSHでは、廃止された。</u> | | RSAAuthentication || yes<br>no || RSA認証を有効にする。<br>RSA認証は、SSH1のみ有効にすることができる。<br><br><u>現在のOpenSSHでは、廃止された。</u> | ||
|- | |- | ||
| 120行目: | 118行目: | ||
|- | |- | ||
| PubkeyAuthOptions || 1つまたは複数の公開鍵認証オプションを指定する。<br>none<br>touch-required<br>verify-required<br><br>デフォルトは、none || noneは、<code>authorized_keys</code>オプションで上書きされない限り、ユーザの存在を要求する。<br><br>touch-requiredオプションは、FIDO認証アルゴリズム(ecdsa-skまたはed25519-sk)を使用する公開鍵認証であり、<br>存在するユーザが明示的に認証を確認したことを証明する署名を常に要求する。<br>また、<code>authorized_keys</code>オプションでの上書きは無効になる。<br><br>verify-requiredオプションは、PIN等でユーザが認証されたことを証明するFIDO鍵の署名を要求する。<br><br>touch-requiredオプションおよびverify-requiredオプションは、他の非FIDO公開鍵タイプには効果がないことに注意する。 | | PubkeyAuthOptions || 1つまたは複数の公開鍵認証オプションを指定する。<br>none<br>touch-required<br>verify-required<br><br>デフォルトは、none || noneは、<code>authorized_keys</code>オプションで上書きされない限り、ユーザの存在を要求する。<br><br>touch-requiredオプションは、FIDO認証アルゴリズム(ecdsa-skまたはed25519-sk)を使用する公開鍵認証であり、<br>存在するユーザが明示的に認証を確認したことを証明する署名を常に要求する。<br>また、<code>authorized_keys</code>オプションでの上書きは無効になる。<br><br>verify-requiredオプションは、PIN等でユーザが認証されたことを証明するFIDO鍵の署名を要求する。<br><br>touch-requiredオプションおよびverify-requiredオプションは、他の非FIDO公開鍵タイプには効果がないことに注意する。 | ||
|- | |- class="row-disabled" | ||
| RhostsRSAAuthentication || yes<br>no<br>デフォルトは、no || RSA認証が成功した時、rhostsや/etc/hosts.equivを使用した認証を許可する。<br>SSH1の場合のみ有効である。<br><br><u>現在のOpenSSHでは、廃止された。</u> | | RhostsRSAAuthentication || yes<br>no<br>デフォルトは、no || RSA認証が成功した時、rhostsや/etc/hosts.equivを使用した認証を許可する。<br>SSH1の場合のみ有効である。<br><br><u>現在のOpenSSHでは、廃止された。</u> | ||
|- | |- | ||
| 142行目: | 140行目: | ||
|- | |- | ||
| KerberosTicketCleanup || yes<br>no<br>デフォルトは、yes || ログアウト時、ケルベロス認証用のキャッシュを自動的に削除する。 | | KerberosTicketCleanup || yes<br>no<br>デフォルトは、yes || ログアウト時、ケルベロス認証用のキャッシュを自動的に削除する。 | ||
|- | |- class="row-disabled" | ||
| KerberosGetAFSToken || yes<br>no<br>デフォルトは、no || ケルベロス認証において、AFSが有効であり、ユーザがKerberos 5のTGTを持っている場合、<br>ユーザのホームディレクトリにアクセスする前に、AFSトークンの取得を試みる。<br><br><u>現在のOpenSSHでは、非推奨となっている。</u><br><u>代わりに、GSSAPIを使用することが推奨されている。<br>GSSAPIは、標準のセキュリティ技術を利用して、認証と暗号化を統合することができる。</u> | | KerberosGetAFSToken || yes<br>no<br>デフォルトは、no || ケルベロス認証において、AFSが有効であり、ユーザがKerberos 5のTGTを持っている場合、<br>ユーザのホームディレクトリにアクセスする前に、AFSトークンの取得を試みる。<br><br><u>現在のOpenSSHでは、非推奨となっている。</u><br><u>代わりに、GSSAPIを使用することが推奨されている。<br>GSSAPIは、標準のセキュリティ技術を利用して、認証と暗号化を統合することができる。</u> | ||
|- | |- class="row-disabled" | ||
| KerberosUseKuserok || yes<br>no<br>デフォルトは、yes || ケルベロス認証で、.k5loginファイルが存在する場合は使用する。<br><br><u>現在のOpenSSHでは、廃止された。</u> | | KerberosUseKuserok || yes<br>no<br>デフォルトは、yes || ケルベロス認証で、.k5loginファイルが存在する場合は使用する。<br><br><u>現在のOpenSSHでは、廃止された。</u> | ||
|- | |- | ||
| 184行目: | 182行目: | ||
|- | |- | ||
| TCPKeepAlive || yes<br>no<br>デフォルトは、yes || TCPキープアライブメッセージを送信する。 | | TCPKeepAlive || yes<br>no<br>デフォルトは、yes || TCPキープアライブメッセージを送信する。 | ||
|- | |- class="row-disabled" | ||
| UseLogin || yes<br>no<br>デフォルトは、no || ログインでloginプログラムを使用する。<br><br><u>現在のOpenSSHでは、廃止された。</u> | | UseLogin || yes<br>no<br>デフォルトは、no || ログインでloginプログラムを使用する。<br><br><u>現在のOpenSSHでは、廃止された。</u> | ||
|- | |- class="row-disabled" | ||
| UsePrivilegeSeparation || yes<br>no<br>デフォルトは、yes || sshdがセッションを受け付けるネットワークトラフィックを処理するためにroot権限を分離する。<br><br><u>OpenSSH 7.8p1以降では、<code>UsePrivilegeSeparation</code>は、<code>sandbox</code>オプションが必須になったため、<br>設定は変更できない。 | | UsePrivilegeSeparation || yes<br>no<br>デフォルトは、yes || sshdがセッションを受け付けるネットワークトラフィックを処理するためにroot権限を分離する。<br><br><u>OpenSSH 7.8p1以降では、<code>UsePrivilegeSeparation</code>は、<code>sandbox</code>オプションが必須になったため、<br>設定は変更できない。 | ||
|- | |- | ||
| 196行目: | 194行目: | ||
|- | |- | ||
| ClientAliveCountMax || 整数値<br>デフォルトは、3 || sshdがクライアントからメッセージを受信せずに送信できるクライアント生存確認メッセージの数を指定する。<br>クライアント生存確認メッセージの送信中にこの閾値に達した場合、sshdはクライアントを切断して、セッションを終了する。<br><br>クライアント生存確認メッセージの使用は、<code>TCPKeepAlive</code>と大きく異なることに注意する。<br><br>クライアント生存確認メッセージは、暗号化されたチャネルを介して送信されるため、なりすましはできない。<br><code>TCPKeepAlive</code>で有効なTCPkeepaliveオプションは、なりすましが可能である。<br>クライアント生存確認メカニズムは、クライアントまたはサーバが、接続が応答しなくなったときを知ることに依存している場合に価値がある。<br><br>例えば、<code>ClientAliveInterval</code>を15に設定し、<code>ClientAliveCountMax</code>をデフォルトのままにする場合、<br>無応答のクライアントは約 45秒後に切断される。<br><code>ClientAliveCountMax</code>を0に設定する場合、接続の終了が無効になる。 | | ClientAliveCountMax || 整数値<br>デフォルトは、3 || sshdがクライアントからメッセージを受信せずに送信できるクライアント生存確認メッセージの数を指定する。<br>クライアント生存確認メッセージの送信中にこの閾値に達した場合、sshdはクライアントを切断して、セッションを終了する。<br><br>クライアント生存確認メッセージの使用は、<code>TCPKeepAlive</code>と大きく異なることに注意する。<br><br>クライアント生存確認メッセージは、暗号化されたチャネルを介して送信されるため、なりすましはできない。<br><code>TCPKeepAlive</code>で有効なTCPkeepaliveオプションは、なりすましが可能である。<br>クライアント生存確認メカニズムは、クライアントまたはサーバが、接続が応答しなくなったときを知ることに依存している場合に価値がある。<br><br>例えば、<code>ClientAliveInterval</code>を15に設定し、<code>ClientAliveCountMax</code>をデフォルトのままにする場合、<br>無応答のクライアントは約 45秒後に切断される。<br><code>ClientAliveCountMax</code>を0に設定する場合、接続の終了が無効になる。 | ||
|- | |- class="row-disabled" | ||
| ShowPatchLevel || yes<br>no<br>デフォルトは、no || セッション確立時にクライアントにOpenSSHのパッチレベルを通知する。<br><br><u>OpenSSH 8.0p1以降では、当オプションは無効になった。</u> | | ShowPatchLevel || yes<br>no<br>デフォルトは、no || セッション確立時にクライアントにOpenSSHのパッチレベルを通知する。<br><br><u>OpenSSH 8.0p1以降では、当オプションは無効になった。</u> | ||
|- | |- | ||
| 241行目: | 239行目: | ||
== OpenSSHのパスワード認証 == | == OpenSSHのパスワード認証 == | ||
RHELおよびSUSEでは、SSHは標準で自動起動設定になっているため、パスワード認証方式でのログインが可能となっている。<br> | |||
したがって、最低限必要な設定として、セキュリティを考慮して以下に示すようにrootアカウントの直接ログインの禁止設定を実施しておけばよい。<br> | したがって、最低限必要な設定として、セキュリティを考慮して以下に示すようにrootアカウントの直接ログインの禁止設定を実施しておけばよい。<br> | ||
<br> | <br> | ||
| 273行目: | 271行目: | ||
Firewalldの設定を反映させるため、Firewalldを再起動する。<br> | Firewalldの設定を反映させるため、Firewalldを再起動する。<br> | ||
sudo firewall-cmd --reload | sudo firewall-cmd --reload | ||
<br><br> | |||
== 画面転送 == | |||
==== X11 ==== | |||
X11では、SSH転送をサポートしている。<br> | |||
<br> | |||
# /etc/ssh/sshd_configファイル | |||
X11Forwarding yes | |||
X11DisplayOffset 10 | |||
X11UseLocalhost yes | |||
<br> | |||
ssh -X <ユーザ名>@<ホスト名またはIPアドレス> # 基本的なX11転送 | |||
ssh -Y <ユーザ名>@<ホスト名またはIPアドレス> # 信頼されたX11転送 (セキュリティ制限が緩和) | |||
<br> | |||
==== Wayland ==== | |||
Waylandは、SSHを使用した画面転送をネイティブにサポートしていない。<br> | |||
しかし、以下に示す方法で実現することが可能である。<br> | |||
<br> | |||
===== Xwaylandを使用している場合 ===== | |||
ただし、サーバ側でXWaylandが必須となる。<br> | |||
ssh -X user@hostname | |||
<br> | |||
==== Weston RDPバックエンドを使用している場合 ==== | |||
# サーバ側 | |||
weston --backend=rdp | |||
# クライアント側 | |||
wlfreerdp /v:<ホスト名またはIPアドレス> | |||
<br> | |||
==== Waylandを使用している場合 ==== | |||
Waylandでは、waypipeが最も推奨される方法である。<br> | |||
<br> | |||
まず、waypipeをインストールする。<br> | |||
<br> | |||
# RHEL | |||
sudo dnf install | |||
# SUSE | |||
sudo zypper install | |||
# Debian GNU/Linux, Raspberry Pi, Mobian | |||
sudo apt install waypipe | |||
<br> | |||
waypipeを使用する。<br> | |||
waypipe ssh <ユーザ名>@<ホスト名またはIPアドレス> <アプリケーションのパス> | |||
<br><br> | <br><br> | ||
| 327行目: | 371行目: | ||
<br> | <br> | ||
===== パッケージ管理システムを使用してインストール ===== | ===== パッケージ管理システムを使用してインストール ===== | ||
# | # RHEL | ||
sudo | sudo dnf install epel-release | ||
sudo | sudo dnf update | ||
sudo | sudo dnf install sshpass | ||
# SUSE | # SUSE | ||
| 363行目: | 407行目: | ||
sshpass -p <パスワード> ssh <ユーザ名>@<ホスト名またはIPアドレス> | sshpass -p <パスワード> ssh <ユーザ名>@<ホスト名またはIPアドレス> | ||
<br><br> | <br><br> | ||
== SSH接続のテストコマンド == | |||
==== タイムアウトの使用 ==== | |||
ポートのステータスを確認することにより、SSH接続をテストする。<br> | |||
timeout <時間 [sec]> bash -c "< /dev/tcp/<サーバのIPアドレスまたはホスト名>/<ポート番号>" | |||
例: | |||
timeout 5 bash -c "< /dev/tcp/server2/22" | |||
<br> | |||
終了ステータスを確認する。<br> | |||
終了ステータスが0の場合、SSH接続のテストが成功したことを意味する。<br> | |||
echo $? | |||
<br> | |||
==== nmapの使用 ==== | |||
nmapはポートの状態を確認する時によく使用されている。<br> | |||
nmap <サーバのIPアドレスまたはホスト名> -PN -p ssh | grep -E 'open|closed|filtered' | |||
<br> | |||
==== netcatまたはncの使用 ==== | |||
ncとncatを使用して、ポートの状態を確認、および、SSH接続をテストすることができる。<br> | |||
nc --wait <時間 [sec]> <サーバのIPアドレスまたはホスト名> <ポート番号> < /dev/null &> /dev/null | |||
<br> | |||
終了ステータスを確認する。<br> | |||
終了ステータスが0以外の場合、SSH接続に失敗している。<br> | |||
echo $? | |||
<br> | |||
==== SSHコマンドの使用 ==== | |||
パスワード無しでSSH接続を行う場合、接続を確認するためにsshコマンドを使用することができる。<br> | |||
<code>ConnectTimeout</code>オプションを付加して、SSHがアクティブになるまでの接続待ち状態でフリーズしないようにする。<br> | |||
<code>StrictHostKeyChecking</code>オプションを付加して、セキュリティとフィンガープリントのプロンプトが表示されないようにする。<br> | |||
<code>BatchMode</code>オプションが<code>yes</code>の場合、パスフレーズ / パスワード照会は無効になる。<br> | |||
<br> | |||
パスワードを使用している場合、コマンドはパスワードの入力を要求するため、sshpassやexpectスクリプト等を使用しない限り自動化できない。<br> | |||
<br> | |||
# SSH接続に成功した場合は、0を指定している | |||
ssh -q -o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectTimeout=<時間 [sec]> <サーバのIPアドレスまたはホスト名> 'exit 0' | |||
<br> | |||
終了ステータスを確認する。<br> | |||
echo $? | |||
<br><br> | |||
== エラー == | |||
==== 接続エラー : client_loop: send disconnect: Broken pipe ==== | |||
SSH接続が予期せず切断されたことを示している。<br> | |||
<br> | |||
このエラーには、以下に示すような様々な原因が考えられる。<br> | |||
* ネットワークの問題 | |||
*: 不安定なネットワーク接続 | |||
*: ファイアウォールやルータの設定 | |||
*: <br> | |||
* サーバ側の問題 | |||
*: サーバの負荷が高い。 | |||
*: SSHの設定 (例: タイムアウト設定が短い等) | |||
*: <br> | |||
* クライアント側の問題 | |||
*: ローカルのネットワーク設定 | |||
*: SSHクライアントの設定 | |||
*: <br> | |||
* セキュリティソフトウェアの干渉 | |||
*: アンチウイルスソフトやファイアウォールが接続を遮断している可能性 | |||
<br> | |||
対処方法を以下に示す。<br> | |||
* 接続を再試行する | |||
*: 単純なネットワークの一時的な問題である可能性がある。 | |||
*: <br> | |||
* 別のネットワークから接続を試みる | |||
*: ローカルネットワークの問題を切り分ける。 | |||
*: <br> | |||
* SSHの冗長モードを使用する | |||
*: <code>-vvv</code>オプションを付加して、sshコマンドを実行すると、詳細なデバッグ情報が得られる。 | |||
*: <code>ssh -vvv <ユーザ名>@<ホスト名またはIPアドレス></code> | |||
*: <br> | |||
* クライアント側のSSH設定を確認する | |||
*: ~/.ssh/configファイルに<code>ServerAliveInterval 60</code>を追記して、定期的にキープアライブパケットを送信することにより、接続を維持しやすくなる。 | |||
*: <br> | |||
* サーバ管理者に連絡する | |||
*: サーバ側の設定や負荷状況を確認してもらう。 | |||
*: <br> | |||
* ファイアウォールやセキュリティソフトの設定を確認する | |||
*: SSHトラフィックが阻害されていないか確認する。 | |||
<br> | |||
このエラーの正確な原因を特定するには、より詳細な情報 (サーバのOS、SSHクライアントのバージョン、ネットワーク環境等) が必要となる。<br> | |||
<br><br> | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ: | [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]] | ||