OpenSSH (macOS/Windows) または Xshell (Windows) を使用して、パスワードまたはキーペアで Linux Elastic Compute Service (ECS) インスタンスに接続します。
パスワード不要のシンプルなブラウザベースの操作環境をご希望の場合は、ワークベンチをご使用ください。
接続前の準備
-
インスタンスが 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を探します。
SSH クライアントに表示されたフィンガープリントが、出力されたものと完全に一致することを確認してください。不一致の場合、中間者攻撃を受けている可能性があります。
このセクションが見つからない場合は、インスタンスにログオンしてフィンガープリントを確認してください。
インスタンス内で確認
ワークベンチを使用してインスタンスにログオンし、以下のコマンドを実行します。
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ファイルを作成します。-
config ファイルを見つけるか作成します。
Windows 10/11
デフォルトパス:
C:\Users\YourUsername\.ssh\config。ファイルが存在しない場合は作成してください。YourUsernameを現在の Windows ユーザー名に置き換えます。macOS
デフォルトパスは
~/.ssh/configです。ファイルが存在しない場合は作成してください。 -
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 は config ファイルから 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>