Advanced Server Accessのクライアントを使用する

Advanced Server Access のすべてのクライアントコマンドは、次の構文を使用します。

sft [global options] command [command options] [arguments...]

グローバルオプション

どのクライアントコマンドでも、次のオプションを使用できます。

  • -h--help:ヘルプを表示します。
  • -v--version:バージョンを表示します。

クライアントコマンド

コマンド 説明 オプション
sft config クライアント構成オプションを取得して設定します。「クライアントを構成する」をご覧ください。
  • --config-file:指定された構成ファイルを使用します。
  • --append:指定された値を配列に追加します。
sft dash ブラウザでチームのダッシュボードを開きます。
  • --team:指定されたチームを使用します。
  • --instanceAdvanced Server Accessプラットフォームの指定のインスタンスを使用します。
  • --account:指定されたアカウントを使用します。
  • --config-file:指定された構成ファイルを使用します。
sft device-info クライアントのデバイス情報をJSONとして表示します。
sft enroll Advanced Server Accessのプラットフォームのクライアントインベントリに新しいクライアントを追加します。
  • --default:新しいデフォルトチームを設定します。(デフォルト:true)
  • --urlAdvanced Server AccessのインスタンスにアクセスするためのURLを設定します。
  • --team:指定されたチームを使用します。
  • --config-file:指定の構成ファイルを使用します。
  • --force:重複が存在する場合でもクライアントを登録します(デフォルト:false)
sft fleet enrolls フリート内の複数のクライアントをサイレント登録します。「Advanced Server Accessクライアントをサイレント登録する」をご覧ください。
  • --default:新しいチームをデフォルトとして設定します。(デフォルト:true)
  • --token:指定されたトークンを使ってクライアントを登録します。
  • --token-file:指定されたファイルに保存されたトークンシークレットを使ってクライアントを登録します。
sft help コマンドのリストまたは1つのコマンドのヘルプを表示します。
sft list-accounts このクライアントが使用するように構成されているアカウントのリストを表示します。
  • --config-file:指定の構成ファイルを使用します。
  • -l, --selector:指定のセレクターによって結果をフィルタリングします(ラベルクエリ)。「セレクター」をご覧ください。
  • --output, -o:結果を指定の書式に設定します。使用可能なオプションは、defaultjsondescribeです。
  • --columns:出力に指定の列名を表示します。列名は小文字で指定する必要があり、複数を指定する場合はカンマ区切りのリストにします。
sft list-teams

sft list-teamsコマンドは、sft list-accountsコマンドのエイリアスです。Oktaではsft list-teamsコマンドの使用を推奨しています。

このクライアントが使用するように構成されているチームのリストを表示します。
  • --config-file:指定された構成ファイルを使用します。
  • -l, --selector:指定のセレクターによって結果をフィルタリングします(ラベルクエリ)。「セレクター」をご覧ください。
  • --output, -o:結果を指定の書式に設定します。使用可能なオプションは、defaultjsondescribeです。
  • --columns:出力に指定の列名を表示します。列名は小文字で指定する必要があり、複数を指定する場合はカンマ区切りのリストにします。
sft list-projects チームで利用可能なプロジェクトのリストを表示します。
  • --team:指定されたチームを使用します。
  • --instanceAdvanced Server Accessプラットフォームの指定のインスタンスを使用します。
  • --account:指定されたアカウントを使用します。
  • --config-file:指定された構成ファイルを使用します。
  • -l, --selector:指定のセレクターによって結果をフィルタリングします(ラベルクエリ)。「セレクター」をご覧ください。
  • --output, -o:結果を指定の書式に設定します。使用可能なオプションは、defaultjsondescribeです。
  • --columns:出力に指定の列名を表示します。列名は小文字で指定する必要があり、カンマ区切りのリストで収集されます。
sft list-servers 現在のチームで利用可能なサーバーのリストを表示します。
  • --team:指定されたチームを使用します。
  • --instanceAdvanced Server Accessプラットフォームの指定のインスタンスを使用します。
  • --account:指定されたアカウントを使用します。
  • --config-file:指定された構成ファイルを使用します。
  • -l, --selector:指定のセレクターによって結果をフィルタリングします(ラベルクエリ)。「セレクター」をご覧ください。
  • -p, --project:指定のプロジェクト名によって結果をフィルタリングします。
  • --output, -o:結果を指定の書式に設定します。使用可能なオプションは、defaultjsondescribeです。
  • --columns:出力に指定の列名を表示します。列名は小文字で指定する必要があり、複数を指定する場合はカンマ区切りのリストにします。
sft list-servers-rjson 現在のチームで利用可能なサーバーのリストをRJSON形式で表示します。この出力をファイルに保存して、Royal TSXで動的フォルダーの作成に利用できます。「Advanced Server AccessRoyal TSXを使用する」をご覧ください。
  • --team:指定されたチームを使用します。
  • --instanceAdvanced Server Accessプラットフォームの指定のインスタンスを使用します。
  • --account:指定されたアカウントを使用します。
  • --config-file:指定された構成ファイルを使用します。
  • -l, --selector:指定のセレクターによって結果をフィルタリングします(ラベルクエリ)。「セレクター」をご覧ください。
  • -p, --project:指定のプロジェクト名によって結果をフィルタリングします。
  • -f, --filename:ファイル出力の格納パスを指定します。
sft login クライアントの現在のチームからログアウトした場合、セッションを作成し、チームのIDプロバイダーを認証します。

アクティブで承認されたクライアントセッションにより、Advanced Server Access のクライアントは、必要に応じてバックグラウンドで資格情報を要求できるようになります。

  • --team:指定されたチームを使用します。
  • --instanceAdvanced Server Accessプラットフォームの指定のインスタンスを使用します。
  • --account:指定されたアカウントを使用します。
  • --config-file:指定された構成ファイルを使用します。
sft logout 現在のセッションからログアウトします。
  • --team:指定されたチームを使用します。
  • --instanceAdvanced Server Accessプラットフォームの指定のインスタンスを使用します。
  • --account:指定されたアカウントを使用します。
  • --config-file:指定された構成ファイルを使用します。
sft proxycommand OpenSSH ProxyCommandと共に使用して、ssh、scp、rsync、ftpなどでsftを透過的に使用できるようにします。
  • --team:指定されたチームを使用します。
  • --instanceAdvanced Server Accessプラットフォームの指定のインスタンスを使用します。
  • --account:指定されたアカウントを使用します。
  • --config-file:指定された構成ファイルを使用します。
  • --via, --bastion:指定のSSH Bastion (踏み台)を介してターゲットに接続します。
  • --config:廃止。代わりにsft ssh-configを使用してください。
sft rdp 引数として渡されたターゲットにRDPを介して接続します。
  • --via, --bastion:指定のSSH Bastion (踏み台)を介してターゲットに接続します。
  • --team:指定されたチームを使用します。
  • --instanceAdvanced Server Accessプラットフォームの指定のインスタンスを使用します。
  • --account:指定されたアカウントを使用します。
  • --config-file:指定された構成ファイルを使用します。
  • --share:ターゲットと共有するディレクトリへの絶対パスを指定します。

    --share引数は、macOSのMacFreeRDPクライアントのみで機能します。

sft register-url-handler

(Windowsのみ)ユーザーが[My Servers(サーバー)]ページの[Connect(接続)]ボタンをクリックすると、ScaleFTアプリケーションが開きます。

これが正しく機能するには、次のエントリを使ってWindowsレジストリを更新する必要があります:Computer\HKEY_CLASSES_ROOT\ScaleFTProtocolHandler\shell\open\command.

このエントリがWindowsレジストリに存在しない場合、接続ボタンを使ってScaleFTアプリケーションを起動することはできません。

sft resolve 指定されたホスト名またはインスタンス詳細に一致する単一サーバーを解決します。
  • --q, --quiet:致命的な警告のみがstderrに出力されるようにします。
  • --team:指定されたチームを使用します。
  • --instanceAdvanced Server Accessプラットフォームの指定のインスタンスを使用します。
  • --account:指定されたアカウントを使用します。
  • --config-file:指定された構成ファイルを使用します。
sft session-logs verify 指定のセッションログの整合性を、Advanced Server Accessに登録されたAdvanced Server Accessゲートウェイ署名キーに照らし合わせて検証します。有効な署名がないログファイルは、不正確であるか、攻撃者によって破損されている可能性があります。
  • --stdin:セッションログファイルからではなく、stdinからのセッションデータを返します。
sft session-logs export セッションログを特定の書式でエクスポートします。デフォルトでは、ログはJSON形式でエクスポートされます。エクスポートプロセスでは、セッションログの検証も行われます。有効な署名がないログファイルは、不正確であるか、攻撃者によって破損されている可能性があります。
  • --stdin:セッションログファイルからではなく、stdinからのセッションデータを返します。
  • --insecure:クライアントによるセッションログファイルの整合性の検証を停止します。
  • --format:特定の書式でログをエクスポートします。使用可能なオプションは、jsonまたはasciinemaです。
  • --output:エクスポートされたログを、stdoutではなく指定のファイルに保存します。
sft ssh 引数として渡されたターゲットにセキュアシェルを介して接続します。

一般に、Advanced Server Accessは、sshの操作にOpenSSHのProxyCommand統合を使用します。OpenSSHが利用できない環境またはコンテキストでは、sshのサポートにsft sshコマンドを使用します。このコマンドは、Advanced Server Accessに固有のオプション(--viaなど)を明示的に渡すときにも利用できます。

  • --via, --bastion:指定されたSSH Bastion (踏み台)ホストを使ってターゲットに接続します。
  • --team:指定されたチームを使用します。
  • --instanceAdvanced Server Accessプラットフォームの指定のインスタンスを使用します。
  • --account:指定されたアカウントを使用します。
  • --config-file:指定された構成ファイルを使用します。
  • -L, --local-port-forward:指定されたローカルポートをリモートアドレスに転送します。
  • -R, --remote-port-forward:指定されたリモートリスナーをローカルアドレスに転送します。
  • --command:指定されたコマンドをSSHを介して実行します。
sft ssh-config ~/.ssh/configファイルでの使用に適したOpenSSH構成ブロックを出力します。これにより、ローカルsshバイナリがAdvanced Server Access認証を使用できるようになります。このSSH構成は、アクティブで承認されたセッションがクライアントに現在ある場合に使用されます。
  • --team:指定されたチームを使用します。
  • --instanceAdvanced Server Accessプラットフォームの指定のインスタンスを使用します。
  • --account:指定されたアカウントを使用します。
  • --config-file:指定された構成ファイルを使用します。
  • --via, --bastion:指定のSSH Bastion(踏み台)を介してターゲットに接続します。
sft support collect Oktaサポート用にローカルの診断情報を収集します。
sft support submit Oktaサポート用に診断情報を送信します。
sft unenroll Advanced Server Accessのプラットフォームのクライアントインベントリーから現在のアクティブクライアントを削除します。
  • -y, --yes:指定されたチームを使用します。
  • --team:指定されたチームを使用します。
  • --instanceAdvanced Server Accessプラットフォームの指定のインスタンスを使用します。
  • --config-file:指定された構成ファイルを使用します。
  • --all:すべてのローカルクライアントの登録を解除します。
sft use 登録済みのチームを、現在のセッションで使用する現在のデフォルトとして設定します。
  • --instanceAdvanced Server Accessプラットフォームの指定のインスタンスを使用します。
  • --config-file:指定された構成ファイルを使用します。

セレクター

  • -l, --selector:フィルタリングするセレクター(ラベルクエリ)。

セレクターをオプションの引数として受け取るコマンドは、任意のセレクタークエリに基づいて結果をフィルタリングできます。

セレクター構文はKubernetesラベルクエリに基づいています。「ラベル・セレクター」をご覧ください。

例:

sft list-servers -l os_type=windows,project_name=Demo

この例では、セレクターを使用して、アクセスできるサーバーのリストをフィルタリングします。このコマンドは、デモプロジェクトに登録されているWindowsサーバーを返します。

クライアントを構成する

sft configコマンドを使用すると、構成オプションを表示または設定できます。

Advanced Server Accessのクライアントのインストール時には構成ファイルは存在しません。最初の構成オプションを設定したときに構成ファイルが作成されます。

構成値を明示的に設定するまでは、デフォルトの設定値が使用されます。Advanced Server Accessクライアント用に用意されているデフォルト値は、一般的な状況で最大限のセキュリティと最大限の使いやすさを実現することを意図しています。rdp.screensizeの設定などの個人的な好みを除いては、いずれのクライアントの構成も全く設定し直す必要はありません。

Advanced Server Accessのクライアント構成はセクションにグループ化されています。現在、これらのセクションには、rdpsshssh_agentservice_authupdateが含まれます。

構成を表示する

  • sft config:現在の構成を表示します。
  • sft config [section.key]section.keyで示される特定の構成の現在の値を表示します。

構成値を設定する

構成値は次のコマンド構文を使って設定できます。sft config [section.key] [value]

RDP構成オプション

キー

説明

rdp.screensize 1024x768など、好みのRDPウィンドウサイズを示す文字列値に設定します。 sft config rdp.screensize 800x600 sft config rdp.screensize 1024x768
rdp.fullscreen RDPセッションを全画面モードで開きたい場合は、これを true に設定します。 trueに設定した場合、rdp.screensizeの値は無視されます。 sft config rdp.fullscreen true sft config rdp.fullscreen false
rdp.client (macOSのみ)これを希望のRDP クライアント(Royal TSXの場合はroyaltsx、MacFreeRDPの場合はmacfreerdp)に設定します。このオプションが設定されていない場合、Advanced Server Accessは最初にRoyal TSXの使用を試み、Royal TSXを使用できない場合にMacFreeRDPを使用します。 sft config rdp.client royaltsx sft config rdp.client macfreerdp

SSH構成オプション

キー

説明

ssh.save_privatekey_passwords trueに設定すると、Advanced Server Accessのクライアントはユーザーが入力したパスフレーズをワークステーションのローカル暗号化ストアに保存します。 sft config ssh.save_privatekey_passwords true sft config ssh.save_privatekey_passwords false
ssh.port_forward_method これをnetcatに設定すると、Advanced Server Accessは、デフォルトのネイティブSSHポート転送を使用する代わりに、ポート転送の手段としてnetcat (nc)をリモートで実行します。 sft config ssh.port_forward_method netcat sft config ssh.port_forward_method native

ssh.insecure_forward_agent

この機能はWindowsクライアントと互換性がありません。

SSHコマンドの実行時にForwardAgentを設定する場合、これをホストに設定します。Advanced Server Accessが発行した資格情報はssh-agentに追加されないため、このオプションは、外部管理の資格情報(Advanced Server Accessが管理しないSSH公開鍵など)を受け入れるように構成されたホストで使用するためのものです。

このオプションを設定しなかった場合、または値をnoneに設定した場合、Advanced Server AccessはSSHエージェントを転送しなくなります。

sft config ssh.insecure_forward_agent host sft config ssh.insecure_forward_agent none

SSHエージェントの構成オプション

キー

説明

ssh_agent.enable trueに設定すると、Advanced Server Accessのクライアントは認証時にSSHエージェントを使用します。 sft config ssh_agent.enable true sft config ssh_agent.enable false
ssh_agent.keys このオプションは、SSHエージェントにロードするSSH秘密鍵の1つまたは複数のパスのJSON配列に設定します。--append フラグを使用して、このリストに値を追加します。

ヒント: Windows PowerShellでJSONリテラルを書き込む場合、内部引用符をエスケープします。例えば:

sft config ssh_agent.keys '[\"C:\\Users\\alice\\.ssh\\id_rsa\"]'

sft config ssh_agent.keys '["/Users/alice/.ssh/id_rsa"]' sft config ssh_agent.keys --append /Users/alice.ssh/id_rsa sft config ssh_agent.keys '[]'

ネットワーク構成オプション

キー

説明

network.forward_proxy このオプションを構成すると、Advanced Server Accessのクライアントは指定されたHTTPまたはHTTPS URLをHTTPトンネルとして使用します。 sft config network.forward_proxy https://your-proxy.example.com:3141

network.tls_use_bundled_cas

trueに設定すると、Advanced Server AccessのクライアントはTLS認証にバンドルされたCA証明書を使用します。falseに設定すると、クライアントはOSのCAリストを使用します。

このオプションはデフォルトでtrueに設定されます。falseに設定すると、特定のオペレーティングシステムではCAリストに問題が発生する可能性があり、バンドルCA証明書リストを使った場合よりパフォーマンスが大幅に低下する可能性があるため、このオプションをfalseに設定しないことを強くお勧めします。

sft config network.tls_use_bundled_cas true sft config network.tls_use_bundled_cas false

その他の構成オプション

キー

説明

service_auth.enable trueに設定すると、Advanced Server Access クライアントはサービスユーザーの認証をサポートします。「サービスユーザー」をご覧ください。 sft config service_auth.enable true sft config service_auth.enable false
update.release_channel Advanced Server Access のクライアントは、デフォルトでは安定した更新チャンネルですが、テスト用更新チャンネルを使用するようにオプションを設定することで、より頻繁なリリースの受信を選択することもできます。 sft config update.release_channel test sft config update.release_channel stable
client.timeout_seconds

クライアントがサーバーからの応答を待機する最長時間を定義します(この時間に達すると要求を再送信します)。

  • このオプションを設定しなかった場合、または値を0に設定した場合、クライアントはデフォルト値である300秒を使用します。
  • このオプションに負の値を設定すると、タイムアウトは無効化されます。
sft config client.timeout_seconds 60 sft config client.timeout_seconds -1

環境変数

変数

説明

SFT_DEBUG 設定した場合、コマンドの実行時に内部ログとタイミングメッセージはstderrに出力されます。 SFT_DEBUG=1 sft list-servers
SFT_ALLOW_INSECURE_USERNAMES 標準以外の文字が含まれるユーザー名による接続を許可します。 SFT_ALLOW_INSECURE_USERNAMES=1 sft ssh ...

SFT_ALLOW_INSECURE_SHA1_SSH

SHA1証明書を使ってプロジェクト内のサーバーに接続する際の警告プロンプトを無効にします。このプロンプトを排除するには、ssh-ed25519アルゴリズムを使用するようにプロジェクトを変更することを検討してください。

SFT_ALLOW_INSECURE_SHA1_SSH=1 sft ssh ...

SFTキーリング

SFTキーリングを有効にすると、state.jsonファイル内のすべてのプレーンテキストトークンが暗号化されます。システムで設定されたSFTキーリングは、ユーザーがOkta Privileged Accessにログインするか、サーバーにアクセスを試みると自動的に更新されます。

アクティブ化されたSFTキーリングを元に戻すことはできません。Okta Privileged Accessは、暗号化機能を備えていないcompatキーリングをすべてのオペレーティングシステム向けに採用しています。デフォルトのcompatキーリングに戻すには、ユーザーは登録し直して再ログインする必要があります。

開始する前に

  • SFTキーリングはアクセストークンを暗号化します。トークンを復号するためのキーを使用できなければ、復号は不可能です。これにより、未承認のデータ流出を防ぐことができます。
  • LinuxのSFTキーリングは、D-Busを使ってデスクトップに固有のSecretServiceに接続し、アクセストークンをプロアクティブに保護します。sftが、ロック解除されたSecretServiceにアクセスできない場合、これらのトークンを復号できなくなります。このために、デスクトップと非デスクトップの両方でLinuxを使用している場合、非デスクトップモードではトークンがロックアウトされる可能性があります。これを回避するには、シェル初期化スクリプトでSFT_KEYRINGcompatに設定してから再登録することで、非セキュアなコンパクトキーリングを使用できます。

キーリングのセットアップ

SFTキーリングは、すべてのデバイスに構成する必要があります。オペレーティングシステムはデフォルトのキーリングを備えており、最も適切なキーリングを決定します。構成でsystem変数を使用すると、オペレーティングシステムは最適なキーリングを自動的に選択します。

macOS

macOSでは、SFTキーリングはデフォルトで暗号化します。ユーザーのデフォルトフレームワークを使ってキーリングを設定できます。

$ defaults write com.scaleft.ScaleFT SFTKeyring system

環境変数を設定してキーリングを有効化することもできます。

export SFT_KEYRING=system

両方が設定されている場合、環境変数が優先されます。

暗号化を無効にするには、環境変数でsystemの代わりにcompatを使用してチームに登録し直します。

Windows

Windowsでは、SFTキーリングはデフォルトで暗号化します。レジストリを使ってキーリングを設定できます。

HKEY_LOCAL_MACHINE\Software\ScaleFT\SFT\Keyring

Or

HKEY_CURRENT_USER\Software\ScaleFT\SFT\Keyring

SFT_KEYRING環境変数を使ってキーリングを設定することもできます。

HKEY_LOCAL_MACHINEは、環境変数とCURRENT_USERエントリの両方に優先します。環境変数はCURRENT_USERエントリに優先します。

暗号化を無効にするには、レジストリキーをsystemの代わりにcompatに設定してチームに登録し直します。

FreeBSD / Linux

FreeBSDとLinuxでは、キーリングはD-Busデスクトップ環境のみで機能します。Linuxではデフォルトの暗号化方式はsystemですが、FreeBSDではcompatです。

SFT_KEYRING環境変数をcompatまたはsystemに設定する、または更新するには、シェルスクリプトに次の内容を追加します。

export SFT_KEYRING=system

または

export SFT_KEYRING=compat

関連項目

Advanced Server Accessのクライアントをインストールする

Advanced Server Accessのサーバーエージェントを管理する