EC2 Linux インスタンスで Session Manager シェルを bash に変更するにはどうすればよいですか?

最終更新日: 2021 年 3 月 24 日

Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスの、Session Manager のデフォルトシェルを変更したいと考えています。その方法を教えてください。

簡単な説明

Amazon EC2 Linux インスタンスの Session Manager セッションには、デフォルトで Bourne シェル (sh) が使用されています。しかし、主要な Linux ディストリビューションのデフォルトのシェルは bash です。sh よりも bash の方を使い慣れているときは、設定変更が可能なシェルプロファイルを使用して、デフォルトの Session Manager シェルを bash に変更できます。シェルプロファイルを使用すると、Session Manager を使用するときにセッション内の設定をカスタマイズできます。
  • シェルの設定
  • 環境変数
  • 作業ディレクトリ
  • セッションの開始時に複数のコマンドを実行する

設定変更可能なシェルプロファイルは、Systems Manager コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) から有効化できます。

解決方法

前提条件

シェルプロファイルを有効化するには、SSM エージェントのバージョン 3.0.196.0 以降を使用している必要があります。お使いのインスタンスの SSM エージェントのバージョン番号を確認してください。必要に応じて、SSM エージェントをアップデートします。詳細については「SSM エージェント への更新の自動化」を参照してください。

インスタンスで使用できるシェルを確認するには、次のコマンドを実行します。

$ sudo cat /etc/shells

: このコマンドを使用して返されたシェルはすべて使用できます。

設定変更可能なシェルのプロファイルを有効化する (コンソール)

Systems Manager コンソールを使用して、設定変更可能なシェルプロファイルを有効化しシェルを bash に変更するには、次の手順を実行します。

1.    Systems Manager コンソールを開き、ナビゲーションペインから [Session Manager ] をクリックします。

2.    [Preferences (設定)] タブをクリックし、[Edit (編集)] をクリックします。

3.    [shellProfile] の下の [linux] に、次のように入力します。

/bin/bash

4.    [Save (保存)] を選択します。

設定変更可能なシェルのプロファイルを有効化する (AWS CLI)

注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

AWS CLI を使用して設定変更可能なシェルプロファイルを有効化し、シェルを bash に変更する方法については、「Session Manager 設定の作成 (コマンドライン)」を参照してください。

その他のシェルプロファイルの設定オプション

デフォルトでは、Session Manager は「/usr/bin」ディレクトリで起動します。コマンドをシェルプロファイルに追加すると、Linux インスタンスの /usr ディレクトリを変更できます。例:
cd /home/ec2-user

また、シェルプロファイルを使用して、特定の環境変数をロードしたり、セッションの開始時にスクリプトを実行したりすることもできます。たとえば、環境変数 PYTHONPATH を追加するには、次のコマンドをシェルプロファイルに追加します。

export PYTHONPATH=/usr/lib/python2.7

ログインしたら、次のコマンドを実行すれば、環境変数が正しく設定されていることを確認できます。

$ sudo env