OpenSSH (macOS/Windows) または Xshell (Windows) を使用して、パスワードまたはキーペアで Linux Elastic Compute Service (ECS) インスタンスに接続します。
パスワード不要のログインが可能な、よりシンプルなブラウザベースの操作については、代わりに Workbench をご使用ください。
接続前の準備
-
インスタンスが Linux で実行されていること。
-
インスタンスに 静的パブリック IP アドレス または Elastic IP アドレス (EIP) があること。
方法 1: OpenSSH クライアントの使用 (コマンドライン)
OpenSSH は、macOS および最新の Windows に組み込まれている標準的な SSH クライアントであり、リモートサーバーへのコマンドライン接続を可能にします。
前提条件
-
インスタンスのパブリック IP アドレス: ECS コンソール - インスタンスで、インスタンス詳細ページを開き、[設定情報] セクションで[パブリック IP アドレス] を見つけます。
-
セキュリティグループ: ローカル IP アドレスからのポート 22 での SSH アクセスを許可する インバウンドルールを追加 します。
操作手順
Windows 10/11
パスワードでの接続
-
PowerShell を開きます。
Win+Rを押し、powershellと入力して、Enterを押します。 -
インスタンスに接続します。
ssh <instance_username>@<instance_public_IP_address>例:
ssh root@47.98.xxx.xxx -
ホストのフィンガープリントを確認します (初回のみ)。
初回接続時、SSH クライアントは検証のためにホストキーのフィンガープリントを表示します。
セキュリティのため、ホストキーのフィンガープリントを取得し、表示されているものと比較 してください。一致しない場合、中間者攻撃を受けている可能性があります。安全なネットワークに切り替えて、再度お試しください。
フィンガープリントを確認した後、
yesと入力してEnterを押します。The authenticity of host '47.98.xxx.xxx (47.98.xxx.xxx)' can't be established. ED25519 key fingerprint is SHA256:AbCdEf123456... This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? -
パスワードを入力します。
入力中、画面には何も表示されません。完了したら
Enterを押します。成功すると、ウェルカムメッセージが表示され、プロンプトが
[<username>@<hostname> ~]$に変わります。Welcome to Alibaba Cloud Elastic Compute Service ! [root@Connect-Instance-Example ~]#
キーペアでの接続
-
PowerShell を開きます。
Win+Rを押し、powershellと入力して、Enterを押します。 -
インスタンスに接続します。
ssh -i /path/to/private_key.pem <instance_username>@<instance_public_IP_address>例:
ssh -i /path/to/private_key.pem root@47.98.xxx.xxx。このコマンドでは、/path/to/private_key.pemは、C:\Users\Administrator\Downloads\private_key.pemなどのご使用の秘密鍵ファイルへのパスです。 -
ホストのフィンガープリントを確認します (初回のみ)。
初回接続時、SSH クライアントは検証のためにホストキーのフィンガープリントを表示します。
セキュリティのため、ホストキーのフィンガープリントを取得し、表示されているものと比較 してください。一致しない場合、中間者攻撃を受けている可能性があります。安全なネットワークに切り替えて、再度お試しください。
フィンガープリントを確認した後、
yesと入力してEnterを押します。The authenticity of host '47.98.xxx.xxx (47.98.xxx.xxx)' can't be established. ED25519 key fingerprint is SHA256:AbCdEf123456... This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? -
認証してインスタンスにアクセスします。
成功すると、ウェルカムメッセージが表示され、プロンプトが
[<username>@<hostname> ~]$に変わります。Welcome to Alibaba Cloud Elastic Compute Service ! [root@Connect-Instance-Example ~]#
macOS
パスワードでの接続
-
[ターミナル] を開きます。
-
インスタンスに接続します。
ssh <instance_username>@<instance_public_IP_address>例:
ssh root@47.98.xxx.xxx -
ホストのフィンガープリントを確認します (初回のみ)。
初回接続時、SSH クライアントは検証のためにホストキーのフィンガープリントを表示します。
セキュリティのため、ホストキーのフィンガープリントを取得し、表示されているものと比較 してください。一致しない場合、中間者攻撃を受けている可能性があります。安全なネットワークに切り替えて、再度お試しください。
フィンガープリントを確認した後、
yesと入力してEnterを押します。The authenticity of host '47.98.xxx.xxx (47.98.xxx.xxx)' can't be established. ED25519 key fingerprint is SHA256:AbCdEf123456... This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? -
パスワードを入力します。
入力中、画面には何も表示されません。完了したら
Enterを押します。成功すると、ウェルカムメッセージが表示され、プロンプトが
[<username>@<hostname> ~]$に変わります。Welcome to Alibaba Cloud Elastic Compute Service ! [root@Connect-Instance-Example ~]#
キーペアでの接続
-
[ターミナル] を開きます。
-
インスタンスに接続します。
# chmod 400:秘密鍵ファイルの所有者に読み取り専用権限を設定します。これは SSH クライアントのセキュリティ要件です。 chmod 400 /path/to/private_key.pem ssh -i /path/to/private_key.pem <instance_username>@<instance_public_IP_address>例:
ssh -i /path/to/private_key.pem root@47.98.xxx.xxx。このコマンドでは、/path/to/private_key.pemは秘密鍵ファイルのパスです。 -
ホストのフィンガープリントを確認します (初回のみ)。
初回接続時、SSH クライアントは検証のためにホストキーのフィンガープリントを表示します。
セキュリティのため、ホストキーのフィンガープリントを取得し、表示されているものと比較 してください。一致しない場合、中間者攻撃を受けている可能性があります。安全なネットワークに切り替えて、再度お試しください。
フィンガープリントを確認した後、
yesと入力してEnterを押します。The authenticity of host '47.98.xxx.xxx (47.98.xxx.xxx)' can't be established. ED25519 key fingerprint is SHA256:AbCdEf123456... This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? -
認証してインスタンスにアクセスします。
成功すると、ウェルカムメッセージが表示され、プロンプトが
[<username>@<hostname> ~]$に変わります。Welcome to Alibaba Cloud Elastic Compute Service ! [root@Connect-Instance-Example ~]#
方法 2: Xshell クライアントの使用 (Windows のみ)
Xshell は、Linux サーバーを管理するための Windows 用 SSH クライアントです。
前提条件
-
Xshell: Xshell 公式ウェブサイト から最新のクライアントをダウンロードしてインストールします。
-
インスタンスのパブリック IP アドレス: ECS コンソール - インスタンスでインスタンス詳細ページを開き、[設定情報] セクションにある [パブリック IP アドレス] を確認します。
-
セキュリティグループ: ローカル IP アドレスからのポート 22 での SSH アクセスを許可する インバウンドルールを追加 します。
操作手順
-
Xshell を起動し、セッションを作成します。
-
Xshell アプリケーションを開きます。
-
表示される[セッション] ウィンドウで、[新規] をクリックします。 または、メニューバーから を選択します。
-
-
接続を設定します。
左ナビゲーションペインで、[接続] をクリックして、以下を設定します:
-
[名前]:わかりやすいセッション名 (例: My-Web-Server)。
-
[プロトコル]: デフォルトは [SSH] です。
-
[ホスト]: インスタンスのパブリック IP アドレス。
-
[ポート番号]:デフォルト [22]。
-
-
ユーザー認証を設定します。
左側のナビゲーションペインで、[認証]をクリックします。
パスワードでの接続
-
[方法]:[パスワード] を選択します。
-
[ユーザー名]: root などのログオンユーザー名です。
-
[パスワード]: ログインパスワードです。
キーペアでの接続
-
[ユーザー名]: ログインユーザー名 (例: root)。
-
[方法]: [公開鍵] を選択し、次の手順でユーザーキーを設定します。
-
[設定...] をクリックします。
-
[キーファイル] オプションを選択します。[ユーザーキー] の横にある [...] をクリックし、[インポート...] をクリックして、ローカルストレージから
.pem秘密鍵ファイルを選択します。 -
インポート後、キーを選択して [OK] をクリックします。
-
(オプション) キーファイルがパスワードで保護されている場合は、[パスワード] を入力します。
-
-
-
インスタンスに接続します。
[接続] をクリックします。
-
ホストキーを確認します (初回のみ)。
初回接続時、Xshell はホストキーのフィンガープリントを含む [SSH セキュリティ警告] を表示します。
セキュリティのため、ホストキーのフィンガープリントを取得し、表示されているものと比較 してください。一致しない場合、中間者攻撃を受けている可能性があります。安全なネットワークに切り替えて、再度お試しください。
確認後、[受け入れて保存] をクリックします。
-
インスタンスにアクセスします。
コマンドプロンプトが表示されると、接続が成功したことになります。
Welcome to Alibaba Cloud Elastic Compute Service ! [root@Connect-Instance-Example ~]#
本番環境に適用
本番環境では、SSH 接続を強化します。
-
中間者攻撃を防ぐためのホストフィンガープリントの確認
初回接続時に、ホストキーのフィンガープリントを確認 して、正しいインスタンスに接続していることを確認します。
-
パスワードベースのログインを無効にし、キーペア認証を強制する
キーペア認証はパスワードよりも安全で、ブルートフォース攻撃のリスクを軽減します。
-
インスタンスに キーペアを関連付け ます。
-
インスタンスにログオンし、
/etc/ssh/sshd_configを編集してPasswordAuthenticationをnoに設定します。SSH サービスを再起動します。
-
-
デフォルトの SSH ポートを変更する
ポート 22 を非標準ポート (2222 など) に変更すると、自動スキャンの対象になりにくくなります。
-
新しいポートを許可する: 新しいポートでのトラフィックを許可する インバウンドルールを追加 します。
-
SSH ポートの変更: インスタンスにログオンし、
/etc/ssh/sshd_configを編集して#Port 22をPort 2222に変更します。SSH サービスを再起動します。 -
新しいポートで接続:
-pでポートを指定します。例:ssh -p 2222 username@instance_ip。
-
-
信頼できる IP アドレスからのアクセスのみを許可する
セキュリティグループルールを変更 して、信頼できる IP アドレスからの SSH アクセスのみを許可します。
よくある質問
-
ポート 22 のセキュリティグループルールはどのように設定しますか?
インスタンスのセキュリティグループで、次の設定でルールを 追加 します。
アクション
プロトコル
ソース
送信先 (このインスタンス)
許可
カスタム TCP
ローカルクライアントのパブリック IP アドレス。
重要0.0.0.0/0を使用すると、任意の IP アドレスがポートにアクセスできるようになり、セキュリティリスクとなります。SSH (22)
SSH ポートを変更した場合は、新しいポート番号を使用します。
-
インスタンスのホストキーのフィンガープリントを確認するにはどうすればよいですか?
初回接続時、SSH クライアントはホストキーのフィンガープリントの確認を求めます。
コンソールでの確認
-
ECS コンソール - インスタンス に移動します。リージョンとリソースグループを選択します。
-
インスタンスを見つけ、 をクリックします。
BEGIN SSH HOST KEY FINGERPRINTSを見つけると、フィンガープリントを確認できます。########################################################## -----BEGIN SSH HOST KEY FINGERPRINTS----- 1024 SHA256:VtyWxxx xxx xxx xxx xxx xxx xxx xxx xxx KezM root@ixxx xxx xxx xxx xxx KZ (DSA) 256 SHA256:kCxxx xxx xxx xxx xxx xxx xxx xxx 0E root@iZxxx xxx xxx xxx KZ (ECDSA) 256 SHA256:PExxx xxx xxx xxx xxx xxx xxx eQ root@iZbxxx xxx xxx xxx KZ (ED25519) 3072 SHA256:Ymxxx xxx xxx xxx xxx xxx xxx DkE root@iZxxx xxx xxx xxx xZ (RSA) -----END SSH HOST KEY FINGERPRINTS----- ##########################################################SSH クライアントに表示されるフィンガープリントが、出力内のいずれかと 完全に一致 することを確認します。不一致の場合、中間者攻撃を受けている可能性があります。
このセクションがない場合は、インスタンスにログインしてフィンガープリントを確認してください。
インスタンスでの確認
Workbench を使用してインスタンスにログイン し、次のコマンドを実行します。
for f in /etc/ssh/ssh_host_*_key.pub; do ssh-keygen -l -f "$f"; done出力例:
1024 SHA256:9C******co root@Connect-Instance-Example (DSA) 256 SHA256:u6******SU root@Connect-Instance-Example (ECDSA) 256 SHA256:iQ******jg root@Connect-Instance-Example (ED25519) 3072 SHA256:8R******64 root@Connect-Instance-Example (RSA)SSH クライアントに表示されるフィンガープリントが、出力内のいずれかと 完全に一致 することを確認します。不一致の場合、中間者攻撃を受けている可能性があります。
-
-
SSH 設定ファイルで接続コマンドを簡素化するにはどうすればよいですか?
サーバーエイリアスを定義するには、ローカルマシンに SSH の
configファイルを作成します。-
設定ファイルを見つけるか作成します。
Windows 10/11
デフォルトパス:
C:\Users\YourUsername\.ssh\config。ファイルが存在しない場合は、作成してください。YourUsernameを現在の Windows ユーザー名に置き換えてください。macOS
デフォルトパス:
~/.ssh/config。ファイルが存在しない場合は、作成してください。 -
設定ファイルを編集し、インスタンス情報を追加します。
configファイルを開き、サーバーごとにHostブロックを追加します。# Web サーバーのエイリアス "web-server" を設定 Host web-server HostName 47.98.xxx.xxx User root Port 22 # (オプション) キーペアでログインする場合は、秘密鍵のパスを指定します。パスワードを使用する場合は無視します。 IdentityFile /path/to/your/private_key.pem # 他のサーバーの設定を追加できます Host other-server HostName 8.123.xxx.xxx User ecs-user Port 2222 IdentityFile ~/.ssh/another_key.pem**パラメーターの説明**:
-
Host: カスタムエイリアス。
-
HostName: パブリック IP アドレス。
-
User: ログインユーザー名。
-
Port: SSH ポート (デフォルト: 22)。
-
IdentityFile: 秘密鍵ファイルのパス。
-
-
エイリアスを使用して接続します。
configファイルを保存し、エイリアスを使用して接続します。# エイリアスを使用して直接接続します。SSH は設定ファイルから IP アドレス、ユーザー名、キー情報を自動的に読み取ります。 ssh web-server
-
-
なぜ
Connection timed outエラーが発生するのですか?クライアントがサーバーに到達できませんでした。次の点を確認してください。
-
パブリック IP アドレスが正しいこと。
-
セキュリティグループが必要なポートでのトラフィックを許可していること。
-
インスタンスが実行中であること。
-
ECS コンソール - 診断 ツールを使用して、問題を診断します。
-
-
Permission denied, please try againというエラーが発生するのはなぜですか。サーバーがパスワードを拒否しました。次の点を確認してください。
-
コンソールで パスワードをリセット して、再試行します。
-
ECS コンソール - 診断 ツールを使用して、問題を診断します。
-
-
Permission denied (publickey)エラーが発生するのはなぜですか?サーバーがキーを拒否しました。次の点を確認してください。
-
コンソールでキーペアを再度 関連付け て、再試行します。
-
秘密鍵ファイルへのパスが正しく、インスタンスに関連付けられているキーペアと一致していること。
-
(macOS の場合) 秘密鍵ファイルのパーミッションは
400または600です。 -
ECS コンソール - 診断 ツールを使用して、問題を診断します。
-
-
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!というエラーが表示されるのはなぜですか。この SSH セキュリティ機能は、サーバーのホストキーが変更されたときに作動します。これは、システムディスクの変更、OS の再インストール、またはホストキーファイルの削除後に発生する可能性があります。
解決策: ホストキーのフィンガープリントを確認 します。正しい場合は、古いフィンガープリントを削除します。
ssh-keygen -R <instance_public_IP_address>