MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
設定 - SSHのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
設定 - SSH
📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは
2026年9月に閉鎖
いたします。
移転先は
https://mochiu.net/index.php?title=設定 - SSH
です。
新しい記事は移転先で追加しております。
(旧サイトでは記事を追加しておりません)
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == SSHサーバを構成し、リモート端末からサーバに接続して操作できるようにする。<br> SSHサーバは、CentOSをMinimal Installした場合やopenSUSEを最小インストールした場合でも、標準でOpenSSHがインストールされるため、追加インストールする必要はない。<br> <br><br> == OpenSSHの設定ファイル == OpenSSHの主な設定ファイルは、以下に示す2つのファイルである。<br> * /etc/ssh/sshd_config *: SSH(SSHサーバ)の設定ファイル * /etc/ssh/ssh_config *: システム共通のSSH(SSHクライアント)の設定ファイル * ~/.ssh/config *: 各ユーザごとのSSH(SSHクライアント)の設定ファイル *: ~/.ssh/configファイルの設定が優先される。 <br><br> == OpenSSHの設定項目 == <center> {| class="wikitable" | style="background-color:#fefefe;" |- ! style="background-color:#66CCFF;" | 項目 ! style="background-color:#66CCFF;" | 値 ! style="background-color:#66CCFF;" | 説明 |- | Port || ポート番号 || sshdが使用するポート番号 |- | AddressFamily || any<br>inet<br>inet6 || sshdをIPv4、IPv6、IPv4とIPv6の両方のいずれかで有効にする。 |- | ListenAddress || host<br>IPv4のIPアドレス または IPv4のIPアドレス:<ポート番号><br>IPv6のIPアドレス または IPv6のIPアドレス:<ポート番号> || sshdが接続を受け付けるローカルアドレスを指定する。<br>Portが未指定の場合は、[Port]項目で指定したポート番号に対してListenする。 |- | Protocol || 1<br>2<br>1,2 || sshdがサポートするSSHのプロトコルバージョン。<br>SSH1のみを使用する場合は1、SSH2のみを使用する場合は2、<br>両方使用する場合は"1,2"と設定する。 |- | Hostkey || SSHサーバに保存している秘密鍵のファイルのパス || SSHで使用する秘密鍵が格納されているファイルのパスを指定する。 |- | KeyRegenerationInterval || 時間(秒) || SSH1では、サーバ鍵を指定した間隔ごとに自動的に再生成される。<br>その自動的に鍵を再生成する間隔を指定する。 |- | ServerKeyBits || ビット数 || SSH1で使用されるサーバ鍵のビット数。<br>最小値は512で、デフォルトは1024。 |- | SyslogFacility || ファシリティ名<br>デフォルトは、AUTH || sshdがsyslogサーバに出力するログメッセージのファシリティ(分類)を指定する。 |- | LogLevel || QUITE<br>FATAL<br>ERROR<br>INFO<br>VERBOSE<br>DEBUG<br>DEBUG1<br>DEBUG2<br>DEBUG3 || sshdが出力するログのログレベルを指定する。 |- | LoginGraceTime || 時間(秒) || ユーザが指定時間内にログインできない場合、サーバの接続を自動的に切断する。 |- | PermitRootLogin || yes<br>no<br>without-password<br>forced-commands-only || rootでのログインを許可するかどうかを指定する。<br>without-passwordは、パスワードを使用したrootユーザのログインを拒否する。<br>forced-commands-onlyは、rootユーザの直接ログインを拒否するが、root権限を使用するコマンドのアクセスは許可する。 |- | StrictModes || yes<br>no<br>デフォルトは、yes || ログイン前にユーザのディレクトリやファイルのパーミッションをチェックする。 |- | MaxAuthTries || 整数値<br>デフォルトは、6 || 認証の再試行最大数。<br>指定値の半数以上の認証が失敗する時、それ以降の失敗はログに記録される。 |- | MaxSessions || 整数値<br>デフォルトは、10 || 最大同時接続数 |- | RSAAuthentication || yes<br>no || RSA認証を有効にする。<br>RSA認証は、SSH1のみ有効にすることができる。 |- | PubkeyAuthentication || yes<br>no<br>デフォルトは、yes || 公開鍵認証を許可する。 |- | AuthorizedKeysFile || SSHサーバに保存されている公開鍵ファイルのパス || ユーザ認証の際に使用される公開鍵を格納しているファイル名を指定する。<br>絶対パス、または、ユーザのホームディレクトリからの相対パスで指定する。 |- | AuthorizedKeysCommand || コマンド || 公開鍵を取得するために使用するコマンドを指定する。 |- | AuthorizedKeysCommandRunAs || ユーザ名|| <code>AuthorizedKeysCommand</code>項目で指定したコマンドを実行する時のユーザを指定する。 |- | RhostsRSAAuthentication || yes<br>no<br>デフォルトは、no || RSA認証が成功した時、rhostsや/etc/hosts.equivを使用した認証を許可する。<br>SSH1の場合のみ有効である。 |- | HostbasedAuthentication || yes<br>no<br>デフォルトは、no || 公開鍵認証が成功した時、rhostsあるいは/etc/hosts.equiv認証を許可する。<br>(ホストベーストド認証) |- | IgnoreUserKnownHosts || yes<br>no<br>デフォルトは、no || RhostsRSAAuthenticationまたはHostbasedAuthenticationの各認証で、<br>ユーザの~/.ssh/known_hostsファイルを使用しないようにする。 |- | IgnoreRhosts || yes<br>no<br>デフォルトは、no || RhostsRSAAuthenticationまたはHostbasedAuthenticationの各認証で、<br>.rhostsおよび.shostsを使用しないようにする。 |- | PasswordAuthentication || yes<br>no<br>デフォルトは、yes || パスワード認証を許可する。 |- | PermitEmptyPasswords || yes<br>no<br>デフォルトは、no || パスワード認証を許可している時、<br>パスワードが空のアカウントに対してサーバがログインを許可するかどうかを指定する。 |- | ChallengeResponseAuthentication || yes<br>no<br>デフォルトは、yes || チャレンジレスポンス認証を許可する。 |- | KerberosAuthentication || yes<br>no<br>デフォルトは、no || ケルベロス認証を許可する。 |- | KerberosOrLocalPasswd || yes<br>no<br>デフォルトは、yes || ケルベロス認証で失敗した場合は、ローカルパスワードで認証する。 |- | KerberosTicketCleanup || yes<br>no<br>デフォルトは、yes || ログアウト時、ケルベロス認証用のキャッシュを自動的に削除する。 |- | KerberosGetAFSToken || yes<br>no<br>デフォルトは、no || ケルベロス認証で、AFSトークンを取得する。 |- | KerberosUseKuserok || yes<br>no<br>デフォルトは、yes || ケルベロス認証で、.k5loginファイルが存在する場合は使用する。 |- | GSSAPIAuthentication || yes<br>no<br>デフォルトは、no || GSSAPIベースのユーザ認証を使用する。<br>SSH2の場合のみ適用される。 |- | GSSAPICleanupCredentials || yes<br>no<br>デフォルトは、yes || ユーザがログアウトする時、その証明書キャッシュを自動的に消去する。<br>SSH2の場合のみ適用される。 |- | GSSAPIStrictAcceptorCheck || yes<br>no<br>デフォルトは、yes || GSSAPIアクセプタのチェックを厳格に行う。 |- | GSSAPIKeyExchange || yes<br>no<br>デフォルトは、no || GSSAPIを許可するために鍵交換を行う。 |- | UsePAM || yes<br>no<br>デフォルトは、no || PAM(Pluggable Authentication Module)インターフェースによる認証を許可する。 |- | AcceptEnv || 環境変数 || クライアントから送信されてきた環境変数のうち、有効にするものを指定する。 |- | AllowAgentForwarding || yes<br>no<br>デフォルトは、yes || ssh-agentによるエージェント転送を許可する。 |- | AllowTcpForwarding || yes<br>no<br>デフォルトは、yes || TCP転送を許可する。 |- | GatewayPorts || yes<br>no<br>デフォルトは、no || ポート中継を許可する。 |- | X11Forwarding || yes<br>no<br>デフォルトは、no || X11転送を許可する。 |- | X11DisplayOffset || 整数値<br>デフォルトは、10 || X11転送をする場合に最初に使用されるディスプレイ番号。 |- | X11UseLocalhost || yes<br>no<br>デフォルトは、yes || X11をlocalhostのみ許可する。 |- | PrintMotd || yes<br>no<br>デフォルトは、yes || ログイン時に/etc/motdの内容を表示する。 |- | PrintLastLog || yes<br>no<br>デフォルトは、yes || ログイン時に前回ログインした日時と時刻を表示する。 |- | TCPKeepAlive || yes<br>no<br>デフォルトは、yes || TCPキープアライブメッセージを送信する。 |- | UseLogin || yes<br>no<br>デフォルトは、no || ログインでloginプログラムを使用する。 |- | UsePrivilegeSeparation || yes<br>no<br>デフォルトは、yes || sshdがセッションを受け付けるネットワークトラフィックを処理するためにroot権限を分離する。 |- | PermitUserEnvironment || yes<br>no<br>デフォルトは、no || ユーザの環境変数の変更を許可する。 |- | Compression || yes<br>no<br>デフォルトは、delayed || 圧縮を許可する。<br>デフォルトでは、ユーザが認証されてから圧縮を許可する。(delayed) |- | ClientAliveInterval || yes<br>no<br>デフォルトは、0 || クライアントの生存チェック間隔を指定する。<br>デフォルトは、チェックしない。(0) |- | ClientAliveCountMax || yes<br>no<br>デフォルトは、3 || クライアントの生存チェック最大カウント数を指定する。 |- | ShowPatchLevel || yes<br>no<br>デフォルトは、no || セッション確立時にクライアントにOpenSSHのパッチレベルを通知する。 |} </center> <br><br> == OpenSSHのパスワード認証 == CentOSおよびSUSEでは、SSHは標準で自動起動設定になっているため、パスワード認証方式でのログインが可能となっている。<br> したがって、最低限必要な設定として、セキュリティを考慮して以下に示すようにrootアカウントの直接ログインの禁止設定を実施しておけばよい。<br> <br> まず、SSHの設定を行う。<br> sudo nano /etc/ssh/sshd_config PermitRootLogin no # コメントを解除(rootログイン禁止) <br> 次に、上記で行ったSSHの設定を反映させるため、sshdを再起動する。<br> sudo systemctl restart sshd <br> もし、Firewalldを有効にしている場合は、SSHサービスの許可が必要である。<br> なお、ポート番号の変更をしていない場合、SSHのポートはTCP 22番である。<br> sudo firewall-cmd --permanent --add-service=ssh <br> Firewalldの設定を反映させるため、Firewalldを再起動する。<br> sudo firewall-cmd --reload <br><br> == SSHのポート番号の変更 == SSH接続ではデフォルトでポート番号22を使用している。<br> 以下のコマンドを実行し、ポート番号の変更を行う。<br> Port 22と記載している箇所が存在するので、ポート番号49152 - 65535の間のポート番号に変更して保存する。<br> sudo nano /etc/ssh/sshd_config <br> 次に、上記で行ったSSHの設定を反映させるため、sshdを再起動する。<br> sudo systemctl restart sshd <br> Firewalldを有効にしている場合は、SSHサービスのポート番号を開放する。<br> sudo firewall-cmd --permanent --add-port=<変更したSSHのポート番号>/tcp <br> Firewalldの設定を反映させるため、Firewalldを再起動する。<br> sudo firewall-cmd --reload <br><br> == SSH接続中のサスペンドの無効化 == ==== GNOME / KDE ==== SSH接続されているPCは無操作状態とみなされて、サスペンドの設定をしている場合、所定の時間が経過するとサスペンドされる。<br> そのため、SSH接続中のユーザが存在する時はサスペンドしないように設定する必要がある。<br> <br> まず、/usr/lib/systemd/systemディレクトリにsystemdユニットファイルを作成する。<br> <br> これは、スリープフックと呼ばれるものであり、スリープまたはハイバネートする前に<code>ExecStart</code>で指定したコマンドが実行される。<br> まず、<code>who</code>コマンドを実行することにより、SSH接続中のユーザが存在するかどうか確認する。<br> もし、SSH接続中のユーザが存在する場合は、終了コードを0以外にして後続処理を動作させないようにする。<br> sudo vi /usr/lib/systemd/system/inhibit-sleep.service <br> # /usr/lib/systemd/system/inhibit-sleep.serviceファイル [Unit] Description=Inhibit sleep when ssh logged Before=sleep.target [Service] Type=oneshot ExecStart=/usr/bin/sh -c '! who | grep -q "(\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\})"' [Install] RequiredBy=sleep.target <br> 以下のシンボリックリンクを作成する。<br> sudo ln -s /usr/lib/systemd/system/inhibit-sleep.service /etc/systemd/system/ <br> コマンドでsystemdユニットファイルを有効にするため、以下のコマンドを実行する。<br> sudo systemctl enable inhibit-sleep.service <br> 動作確認するには、システムログを確認する。<br> サスペンドした場合は<code>Reached target Sleep.</code>、サスペンドから復帰した場合は<code>Stopped target Sleep.</code>と表示される。<br> sudo journalctl -f -usleep.target <br> ==== GNOME ==== ソフトウェアの使用中にも関わらず、スクリーンセーバーまたはサスペンドが作動するものがある。<br> このような場合、gnome-session-inhibitツールを使用して、サスペンド等を防止する。<br> <br> これを行うには、~/.bashrcファイル等の最下行に以下の設定を追記する。<br> <syntaxhighlight lang="sh"> if [[ -n $SSH_CONNECTION ]]; then : $(gnome-session-inhibit --inhibit suspend --reason "SSH connection is active" --inhibit-only) & fi </syntaxhighlight> <br><br> == SSHPassのインストール == SSHPass(Non-interactive SSH Password Authentication)を使用すると、コマンドにてssh接続のパスワードを指定することができるので、<br> sshコマンドと合わせて1行でSSH接続できるようになる。<br> <br> ===== パッケージ管理システムを使用してインストール ===== # CentOS sudo yum install epel-release sudo yum update sudo yum install sshpass # SUSE sudo zypper install sshpass <br> ===== ソースコードからインストール ===== SourceForgeのWebサイトからSSHPassのソースコードをダウンロードする。<br> https://sourceforge.net/projects/sshpass/<br> <br> ダウンロードしたファイルを解凍して、任意のディレクトリに移動する。(ここでは、sshpassというディレクトリとする)<br> tar xf sshpass-<バージョン> cd ~/sshpass-<バージョン> <br> ビルドディレクトリを作成する。<br> mkdir build && cd build <br> SSHPassをビルドおよびインストールする。<br> ../configure --prefix=<SSHPassのインストールディレクトリ> make -j $(nproc) make install <br> .profileファイル等に環境変数<code>PATH</code>を追加する。<br> export PATH="$HOME/SSHPass/bin:$PATH" <br> ===== 確認 ===== 以下のコマンドを実行して、SSHPassが正常にインストールできたか確認する。<br> sshpass -V <br> ===== 使用方法 ===== SSHPassを使用して、パスワードを指定する例を示す。<br> <u>ただし、初回のログインにおいて、使用できない場合があるので注意すること。</u><br> sshpass -p <パスワード> ssh <ユーザ名>@<ホスト名またはIPアドレス> <br><br> __FORCETOC__ [[カテゴリ:CentOS]][[カテゴリ:SUSE]]
設定 - SSH
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse