リモートホストの SSH の設定

SSH 認証とプロキシ接続を必要とするデプロイメントに SmartAgentctl を使用できます。

SSH パスワード認証

既存の秘密キー認証に加え、SSH 接続を使用することで、キーベースの認証が利用できない、または不要な環境におけるユーザー名とパスワードの認証をサポートできます。環境変数を使用して SSH を設定するには、「環境変数を使用した SSH の設定」を参照してください。

リモートホストの SSH プロキシの設定

SSH 接続が HTTP または SOCKS5 プロキシを介してして回送できるようになり、ネットワークが制限され SSH に直接アクセスできない環境での接続が可能になりました。HTTP または SOCKS5 プロキシを介した SSH 接続を設定するには、「サポートされているプロキシタイプ」を参照してください。

環境変数を使用した SSH の設定

  1. remote.yaml ファイルを次のように更新して、セキュリティ強化のために環境変数に保存されているパスワードを参照します。
    CODE
    protocol:
      type: ssh
      auth:
        username: myuser
        type: password
        password_env_var: SSH_PASSWORD
    ここで、username が SSH 認証に必要です。type: password には、環境変数(password_env_var)の代わりにパスワード(password)を使用することもできます。ただし、環境変数を使用することを推奨します。両方が指定されている場合、password_env_var が優先されます。
    注: 既存の設定との互換性を維持するため、デフォルトの認証タイプは privatekey です。
  2. smartagentctl を実行する前に、スマートエージェントの config.ini ファイルで環境変数を設定します。
    CODE
    export SSH_PASSWORD="mypassword"
    smartagentctl install --remote

リモートホストでサポートされているプロキシタイプ

HTTP プロキシ

SSH 接続は HTTP プロキシサーバーを介して回送できます。
CODE
protocol:
  type: ssh
  auth:
    username: sshuser
    type: password
    password: sshpass
  proxy:
    type: http
    address: proxy.company.com:8080
    username: proxyuser
    password: proxypass
    plaintext: false  # optional, defaults to false
    insecure: false   # optional, defaults to false

次のとおりです。

  • plaintext true に設定されている場合、TLS 暗号化なしで HTTP プロキシに接続します。
  • insecuretrue に設定されている場合、HTTPS プロキシの TLS 証明書の検証をスキップします。

SOCKS5 プロキシ

SOCKS5 プロキシを介して SSH 接続を回送できます。
CODE
protocol:
  type: ssh
  auth:
    username: sshuser
    type: privatekey
    private_key_path: /path/to/key
  proxy:
    type: socks5
    address: socks-proxy.company.com:1080
    username: proxyuser
    password: proxypass

プロキシ設定

フィールド タイプ 必須 説明
type 文字列 あり プロキシタイプ。値は http または socks5です。
address 文字列 あり ポートを含むプロキシサーバーアドレス。たとえば、proxy.example.com:8080 のようになります。
username 文字列 いいえ プロキシ認証ユーザー名。
password 文字列 いいえ プロキシ認証パスワード。
plaintext boolean いいえ ( HTTP プロキシのみ)プレーン HTTP を使用します。デフォルト値は false です。
insecure boolean いいえ ( HTTP プロキシのみ) TLS 検証をスキップします。デフォルト値は false です。

設定に関する考慮事項

  • address には、ホスト名/IP とポートの両方を含める必要があります。

  • プロキシ認証(ユーザー名/パスワード)は、両方のプロキシタイプでオプションです。

  • plaintext および insecure オプションは HTTP プロキシでのみ有効です。

SSH Remote Host Configuration Examples

SSH with Password and HTTP Proxy

CODE
remote_dir: /opt/smartagent
protocol:
  type: ssh
  auth:
    username: deployuser
    type: password
    password_env_var: DEPLOY_PASSWORD
  proxy:
    type: http
    address: corporate-proxy.company.com:8080
    username: proxyuser
    password: proxypass

hosts:
  - host: production-server-1.company.com
    port: 22
  - host: production-server-2.company.com  
    port: 2222

SSH with Private Key and SOCKS5 Proxy

CODE
remote_dir: /home/appd
protocol:
  type: ssh
  auth:
    username: appd
    type: privatekey
    private_key_path: ~/.ssh/appd_deploy_key
  proxy:
    type: socks5
    address: jump-host.company.com:1080

hosts:
  - host: 10.0.1.100
  - host: 10.0.1.101