SSH

SSHプロトコル接続タイプの詳細設定

Keeper Connection ManagerのSSHプロトコルのサポートは、kcm-libguac-client-sshパッケージが担います。このパッケージは、インストールで@kcmパッケージグループを使用した場合、デフォルトでインストールされ、keeper/guacdのDockerイメージ内にすでにインストールされています。このパッケージがまだインストールされていない場合、SSH接続は機能せず、必要なプロトコルがサポートされていないことを示す警告がguacdのログに記録されます。

guacd[8]:WARNING:Support for protocol "ssh" is not installed

このようなエラーがguacdのログに表示される場合は、kcm-libguac-client-sshをインストールするだけでこの問題を解決するには十分です。

$ sudo yum install kcm-libguac-client-ssh

guacdサービスは、SSHサポートのインストールを有効にするために再起動する必要はありません。

概要

VNCRDPとは異なり、SSHはテキストプロトコルです。SSHプロトコルが基本的に画像を使用しないため、Guacamoleの実装は、実際にはターミナルエミュレータとSSHクライアントの組み合わせです。GuacamoleのSSHサポートはサーバー側で端末をエミュレートし、この端末の画面をリモートのクライアントに表示します。

KeeperでSSHプロトコルのサポートを管理するには、複数のパラメータを使用します。MySQLPostgreSQLなどのデータベースを使用する場合、これらのパラメータは使いやすいWebインターフェースで表示されます。暗号化されたJSONLDAPスキーマの変更など、別のメカニズムを使用して接続を定義する場合、パラメータは内部パラメータ名を使用して指定します。

このドキュメントは、Webインターフェース内と同じ方法でグループ化された、サポート対象パラメータを網羅することを目指しています。Webインターフェースに表示されるフィールド見出しは、パラメータごとに表示され、各パラメータの内部名、およびそのパラメータの動作の詳細な説明と適正値も一緒に表示されます。

Keeper Secrets Managerのパラメータ

フィールド見出しパラメータ名説明

ユーザー提供のKSM設定を許可:

ksm-user-config-enabled

「true」に設定すると、Keeper Connection Managerの各ユーザープロファイルを任意の接続のKeeper Secrets Manager設定に割り当てることができます。詳細は、複数ボルトの連携画面をご参照ください。

ネットワークパラメータ

SSH接続は、TCPを使用して特定のポートと特定のホスト名またはIPアドレスに対して確立されます。すべてのSSH接続にホスト名またはアドレスを指定する必要がありますが、ポートを指定する必要があるのは、標準のSSHポート(22)を使用していない場合だけです。

フィールド見出し(Webインターフェース)パラメータ名説明

ホスト名:

hostname

**必須:**Guacamoleが接続するSSHサーバーのホスト名またはIPアドレス。

ポート:

port

SSHサーバーの待ち受けポート。デフォルトでは、SSHの標準ポート22が使用されます。

ホストの公開鍵(Base 64):

host-key

SSHサーバーのknown hostsエントリ。OpenSSHのknown_hostsファイル内で指定されるのと同じ形式 。設定しない場合、ホストIDの検証は実行されません。

認証パラメータ

GuacamoleはSSHサーバーによるキーボードインタラクティブ認証、パスワード認証、公開鍵認証をサポートしています。公開鍵認証を使用するには、秘密鍵と、もしあればそのパスフレーズへのアクセス権が必要です。秘密鍵にはパスフレーズが必要ですが、パスフレーズが設定されていない場合は、接続時にパスフレーズの入力を求められます。

フィールド見出し(Webインターフェース)パラメータ名説明

ユーザー名:

username

指定したSSHサーバーに接続する場合と同様に、認証するユーザー名。設定しない場合、ユーザーは接続時にユーザー名の入力を求められます。

パスワード:

password

指定したSSHサーバーで認証する場合に使用するパスワード。パスワードを設定せず、秘密鍵も使用しない場合、ユーザーは接続時にパスワードの入力を求められます。

秘密鍵:

private-key

公開鍵認証に使用する秘密鍵のすべての内容。このパラメータを指定しない場合、公開鍵認証は使用されません。秘密鍵は、OpenSSH形式である必要があります。OpenSSHのssh-keygenユーティリティによって生成されるのと同様です。

パスフレーズ:

passphrase

公開鍵認証で使用する秘密鍵を復号するために使用するパスフレーズ。秘密鍵がパスフレーズを必要としない場合、このパラメータは必要ありません。

ディスプレイ設定

GuacamoleのSSHサポートはディスプレイを転送しますが、VNCやRDPのようなリモートデスクトッププロトコルと同じ感覚ではありません。ディスプレイはターミナルエミュレータであるため、使用するフォントとそのサイズを設定するためのオプションが用意されています。

SSH接続で別のフォントを選択する場合は、選択したフォントがguacdを実行しているサーバーにインストールされている必要があります。端末のディスプレイへの文字のレンダリングを処理するのは、クライアントではなく_サーバー_です。

フィールド見出し(Webインターフェース)パラメータ名説明

カラースキーム:

color-scheme

SSH接続で使用されるターミナルエミュレータに使用するカラースキーム。各カラースキームによって、端末のデフォルトの前景色と背景色が決まります。テキストを表示するときに色を指定するプログラムは、これらの既定値を上書きします。適正値は以下のとおりです。

  • black-white」- 白地に黒色のテキスト

  • [gray-black」- 黒地に灰色のテキスト(デフォルト)

  • green-black」- 黒地に緑色のテキスト

  • white-black」- 黒地に白色のテキスト

デフォルトでは、Guacamoleは黒地に灰色でテキストをレンダリングします。

フォント名:

font-name

使用するフォントの名前。指定しない場合は、デフォルトの「monospace」が代わりに使用されます。**これは、guacdを実行しているサーバーにインストールされているフォントの名前であることが必要で、等幅フォントでなければなりません。**等幅フォント以外を使用すると、個々のグリフが正しく表示されないことがあります。

フォントサイズ:

font-size

使用するフォントのサイズ(ポイント単位)。既定では、レンダリングされるテキストのサイズは12ポイントになります。

最大スクロールバックサイズ:

scrollback

ターミナルスクロールバックバッファ内で許容される最大行数。デフォルトでは、スクロールバックバッファは最大1000行に制限されます。

読み取り専用:

read-only

この接続を読み取り専用にするか否か。「true」に設定すると、接続で入力が一切できなくなります。ユーザーは端末(または端末内で実行されているアプリケーション)を表示することはできますが、操作はできません。

カスタムカラースキーム

SSH接続で使用されるターミナルエミュレータにカスタムカラースキームが付属する場合があります。カスタムスキームは、Xtermとよく似た形式で、セミコロンで区切られた一連の名前と値のペアで構成されます。名前と値のペアはそれぞれコロンで区切られ、ターミナルエミュレータパレットの色に値を割り当てます。

たとえば、デフォルトで白地に青色のテキストを使用し、赤色を紫の色調に変更するには、以下のように指定してください。

foreground: rgb:00/00/ff;
background: rgb:ff/ff/ff;
color9: rgb:80/00/80

正規の色名は以下のとおりです。

  • foreground」- デフォルトの前景色。

  • background」- デフォルトの背景色。

  • colorN」- Xterm 256色パレット内のインデックスNの色。たとえば、「color9」はパレットインデックス9の色を指し、通常は赤です。

正規の色の値は以下のとおりです。

  • 「rgb:RR/GG/BB」- RGB形式の色で、各部は16進数で表されます。たとえば、「rgb:ff/00/00」は赤色を指定します。16進数の各部は1桁から4桁までですが、有効値は常にゼロ拡張または2桁に切り捨てられます。たとえば、「rgb:f/8/0」、「rgb:f0/80/00」、「rgb:f0f/808/00f」はすべて同じ有効色を指します。

  • colorN」-Xterm 256色パレット内のインデックスNに現在割り当てられている色。たとえば、「color9」は、パレットインデックス9に現在割り当てられている色を指定します。その色への参照ではなく、_現在の色の値_が使用されることにご注意ください。カラースキームの設定で後から参照色を変更しても、その新しい色の値はこの割り当てに反映されません。

  • NAME」- 人間が判読できる名前「NAME」の付いた色で、「NAME」はX11でサポートされている標準色名の1つです。これらの名前は、一般にW3CがCSS用に標準化した名前に対応しています。

クリップボードのパラメータ

Guacamoleは、SSH接続でクリップボードへの双方向アクセスをデフォルトで可能にします。この動作は接続ごとにオーバーライドでき、クリップボードへのアクセスを制限できます。

フィールド見出し(Webインターフェース)パラメータ名説明

端末からのコピーを無効化:

disable-copy

「true」に設定すると、SSHセッション内でコピーされたテキストは、Guacamoleセッションのブラウザ側ではユーザーからアクセスできなくなり、リモートデスクトップ内でのみ使用できるようになります。デフォルトでは、ユーザーはコピーしたテキストにアクセスできます。

クライアントからの貼り付けを無効化:

disable-paste

「true」に設定すると、Guacamoleセッションのブラウザ側でコピーされたテキストは、SSHセッション内でアクセスできなくなります。デフォルトでは、ユーザーはSSHセッション内でブラウザ以外からデータを貼り付けることができます。

セッション/環境パラメータ

デフォルトでは、SSHセッションは対話型シェルを開始します。使用されるシェルは、SSHサーバーが通常、chshまたは/etc/passwd内で設定されたユーザーのデフォルトシェルを読み取って決定します。この設定をオーバーライドして代わりに特定のコマンドを実行したい場合は、Guacamole SSH接続の設定でそのコマンドを指定することで実行できます。

フィールド見出し(Webインターフェース)パラメータ名説明

実行コマンド:

command

SSHセッション上で実行するコマンド(必要に応じて)。指定しない場合、SSHセッションはユーザーのデフォルトシェルを使用します。

言語/ロケール($LANG):

locale

SSHセッションに必要な特定のロケール。これは、SSHサーバーのLANG環境変数で許容される任意の値を指定できます。指定しない場合、SSHサーバーのデフォルトのロケールが使用されます。

このパラメータは、LANG環境変数を使用してSSHサーバーに送信されるため、このパラメータが有効なのは、SSHクライアントがLANG環境変数を設定することをSSHサーバーが許可している場合のみです。

タイムゾーン($TZ):

timezone

SSHセッションに必要なタイムゾーン。これは、SSHサーバーのTZ環境変数で許容される任意の値(通常はIANAタイムゾーンデータベースで定義された標準名)を指定できます。指定しない場合、SSHサーバーのデフォルトのタイムゾーンが使用されます。

このパラメータは、TZ環境変数を使用してSSHサーバーに送信されるため、このパラメータが有効なのは、SSHクライアントがTZ環境変数を設定することをSSHサーバーが許可している場合のみです。

サーバーのキープアライブ間隔:

server-alive-interval

キープアライブパケットをSSHサーバーに送信する間隔(秒単位)。ここで「0」 は、キープアライブパケットを一切送信しないことを意味します(デフォルトの動作)。適正な最小値は「2」です。

端末の動作パラメータ

ほとんどの場合、Guacamoleターミナルエミュレータのデフォルトの動作は変更せずに使用できます。ただし、特定のシステム(特にLinux以外のオペレーティングシステム)に接続する場合は、正常に動作するように端末の動作の調整が必要な場合があります。GuacamoleのSSHサポートには、バックスペースで送信される制御コードを制御するためのパラメータと、TERM環境変数を使用して要求される端末タイプが用意されています。

フィールド見出し(Webインターフェース)パラメータ名説明

Backspaceキー送信:

backspace

バックスペースが押されたときに送信される端末制御コードの整数値。ほとんどの場合、これを調整する必要はないはずです。ただし、バックスペースキーを押したときに、テキストが消去されるのではなく制御文字(通常、^?または^H)が表示される場合は、このパラメータの調整が必要と考えられます。デフォルトでは、制御コード127(削除)が送信されます。

端末タイプ:

terminal-type

SSHサーバーに渡す端末タイプの文字列。この値は通常、SSHセッション内でTERM環境変数として開示され、アプリケーションが送信する制御文字に影響します。デフォルトでは、端末タイプ文字列「linux」が使用されます。

テキストセッションの記録(タイプスクリプト)

計時情報を含む、SSHセッションの生の完全なテキストコンテンツを指定されたディレクトリに自動的に記録できます。この記録は、「タイプスクリプト」とも呼ばれ、指定されたディレクトリ内の2つのファイルに書き込まれます。1つのファイルには生のテキストデータが含まれ、もう1つのファイルには計時情報が含まれます。タイプスクリプト名に付けられた値が「NAME」の場合、これらのファイル名はそれぞれ「NAME」と「NAME.timing」となります。

この形式は、UNIXの標準scriptコマンドで使用される形式と互換性があり、scriptreplay(インストールされている場合)を使用して再生できます。たとえば、「NAME」というタイプスクリプトを再生するには、以下のように実行してください。

$ scriptreplay NAME.timing NAME
フィールド見出し(Webインターフェース)パラメータ名説明

タイプスクリプトのパス:

typescript-path

タイプスクリプトファイルを作成するディレクトリ。**タイプスクリプトを記録する必要がある場合は、このパラメータが必要です。**このパラメータを指定すると、タイプスクリプトの記録が有効になります。このパラメータを省略すると、タイプスクリプトは記録されません。

タイプスクリプト名:

typescript-name

作成されたすべての記録に使用する基本ファイル名。省略すると、基本ファイル名「typescript」が使用されます。

Guacamoleは既存のタイプスクリプトを上書きしません。必要に応じて、「.1」、「.2」、「.3」などの数字のサフィックスを基本ファイル名に付加して、既存の記録が上書きされないようにします。数字のサフィックスを付加しても区別できない場合は、タイプスクリプトは記録されず、エラーがログに記録されます。

このパラメータは、タイプスクリプトの記録が有効になっている場合にのみ機能し、タイプスクリプトのパスを指定することで制御できます。タイプスクリプトのパスが指定されていない場合、タイプスクリプトの記録は有効にならず、このパラメータは無視されます。

タイプスクリプトのパスを自動作成:

create-typescript-path

「true」に設定すると、指定したタイプスクリプトのパスの末尾のディレクトリがまだ存在しない場合、自動的に作成されます。デフォルトでは、タイプスクリプトのパスの一部が自動的に作成されることはなく、存在しないディレクトリを使用しようとすると、タイプスクリプトは記録されず、エラーがログに記録されます。

自動的に作成されるのは、パス内の末尾のディレクトリのみです。パスの末尾以外の先頭の方のディレクトリが存在しない場合、タイプスクリプトは記録されず、エラーがログに記録されます。

このパラメータは、タイプスクリプトの記録が有効になっている場合にのみ機能し、タイプスクリプトのパスを指定することで制御できます。タイプスクリプトのパスが指定されていない場合、タイプスクリプトの記録は有効にならず、このパラメータは無視されます。

画面記録パラメータ

SSHのセッションは画像で記録できます。これらの記録は、Guacamoleプロトコルのダンプ形式を取り、指定したディレクトリに自動的に記録されます。その後、player.glyptodon.comでホストされているGlyptodon Enterprise Session Recording Playerアプリケーションを使用して(またはこのアプリケーションのローカルデプロイを使用して)、記録を再生できます。

このプレーヤーは静的なウェブアプリケーションであり、作成された記録の再生にはJavaScriptのみを使用します。この機能は厳密にローカルで実行され、記録がリモートサービスにアップロードされて処理されることはありません。このアプリケーションの独自のデプロイを使用したい場合、またはソースコードを調査したい場合は、Glyptodon Enterprise Session Recording Playerの完全なソースコードとローカルデプロイの手順が次のGitHubにあります。https://github.com/glyptodon/glyptodon-enterprise-player

Keeper Connection Managerの最新バージョンでは、記録されたセッションの画面上での再生がサポートされています。 セッション記録のドキュメントページをご参照ください。

フィールド見出し(Webインターフェース)パラメータ名説明

記録のパス:

recording-path

画面記録ファイルを作成するディレクトリ。**画像記録の作成が必要な場合は、このパラメータが必要です。**このパラメータを指定すると、画像による画面記録が有効になります。このパラメータを省略した場合、画像記録は作成されません。

記録名:

recording-name

作成されたすべての記録に使用するファイル名。省略した場合、各記録のファイル名は単に「recording」となります。

Guacamoleは既存の記録を上書きしません。必要に応じて、「.1」、「.2」、「.3」などの数字のサフィックスをファイル名に付加して、既存の記録が上書きされないようにします。数字のサフィックスを付加しても区別できない場合は、セッションは記録されず、エラーがログに記録されます。

このパラメータは、画像の記録が有効になっている場合にのみ機能し、記録のパスを指定することで制御できます。記録のパスが指定されていない場合、セッションの画像による記録は有効にならず、このパラメータは無視されます。

画像/ストリームを除外:

recording-exclude-output

「true」に設定すると、通常サーバーからクライアントにストリーミングされる画像出力やその他のデータが記録から除外され、ユーザー入力イベントのみを含む記録が生成されます。デフォルトでは、画像出力は記録に含まれます。

このパラメータは、画像の記録が有効になっている場合にのみ機能し、記録のパスを指定することで制御できます。記録のパスが指定されていない場合、セッションの画像による記録は有効にならず、このパラメータは無視されます。

マウスを除外:

recording-exclude-mouse

「true」に設定すると、ユーザーのマウスイベントが記録から除外され、マウスカーソルが表示されない記録が作成されます。デフォルトでは、マウスイベントは記録に含まれます。

このパラメータは、画像の記録が有効になっている場合にのみ機能し、記録のパスを指定することで制御できます。記録のパスが指定されていない場合、セッションの画像による記録は有効にならず、このパラメータは無視されます。

キーイベントを記録:

recording-include-keys

「true」に設定すると、ユーザーキーイベントが記録に含まれます。その後、記録をguaclog ユーティリティに渡して、セッション中に押されたキーを人間が判読できるように変換できます。デフォルトでは、プライバシー保護のため、キーイベントは記録に含まれ「ません」。

このパラメータは、画像の記録が有効になっている場合にのみ機能し、記録のパスを指定することで制御できます。記録のパスが指定されていない場合、セッションの画像による記録は有効にならず、このパラメータは無視されます。

記録のパスを自動作成:

create-recording-path

「true」に設定すると、指定した記録のパスの末尾のディレクトリがまだ存在しない場合、自動的に作成されます。デフォルトでは、記録のパスの一部が自動的に作成されることはなく、存在しないディレクトリを使用しようとすると、セッションは記録されず、エラーがログに記録されます。

自動的に作成されるのは、パス内の末尾のディレクトリのみです。パスの末尾以外の先頭の方のディレクトリが存在しない場合、セッションは記録されず、エラーがログに記録されます。

このパラメータは、画像の記録が有効になっている場合にのみ機能し、記録のパスを指定することで制御できます。記録のパスが指定されていない場合、セッションの画像による記録は有効にならず、このパラメータは無視されます。

SFTPパラメータ(ファイル転送)

Guacamoleは、SFTPを使用したSSHによるファイル転送をサポートしています。SFTPは、ほとんどのSSHサーバーに組み込まれているファイル転送プロトコルです。GuacamoleのSSH接続でSFTPが有効になっている場合、ユーザーはその接続を使用してファイルをアップロードおよびダウンロードできます。

Ctrl+Alt+ShiftでアクセスするGuacamoleメニューを使用してファイルをダウンロード/アップロードすることは常に可能ですが、guacctlユーティリティを使用する方が便利です。guacctlユーティリティは、Guacamoleのターミナルエミュレータ固有の制御コードを送信できるシェルスクリプトです。アクセスしているSSHサーバー上のパスに配置すると、ユーザーはこれを使用して、SSHセッション内で直接ファイルのダウンロードを開始できます。

フィールド見出し(Webインターフェース)パラメータ名説明

SFTPを有効化:

enable-sftp

ファイル転送を有効にするか否か。「true」に設定すると、ユーザーはSSHサーバーからSFTPを使用してファイルをアップロードまたはダウンロードできるようになります。

ファイルブラウザのルートディレクトリ:

sftp-root-directory

Guacamoleのファイルブラウザを使用して接続ユーザーに公開するディレクトリ。省略した場合、デフォルトでルートディレクトリが使用されます。

Last updated