SSHでLinuxサーバーへ接続する方法
SSH接続は、Linuxサーバーのターミナルに入り、パッケージをインストールし、ログを確認し、サービスを再起動したりプロジェクトをアップロードしたりするときに役立ちます。初回接続に長い理論は必要ありません。多くの場合、1つのコマンドと正しいアクセス情報で十分です。
まず最短の接続方法を説明し、その後でWindows、Linux、macOSの違い、よくあるエラー、基本的な安全対策を確認します。
LinuxサーバーへSSHですぐに接続する
サーバーのIPアドレス、ユーザー名、パスワードまたはキーが分かっていれば、準備はほとんど必要ありません。初回ログインは通常、次の1コマンドです。
ssh username@server_ipSSHサーバーが標準以外のポートで待ち受けている場合は、-pを追加します。
ssh -p 2222 username@server_ipキーによるログインが設定されている場合は、秘密鍵へのパスを指定します。
ssh -i ~/.ssh/id_ed25519 username@server_ipこれでサーバーに入り、作業を始められます。ただし、必要な情報、OSごとの接続方法、安全なアクセスの作り方も理解しておくと安心です。
接続に必要なもの
SSH(Secure Shell)は、サーバーのコマンドラインを遠隔で開く安全な方法です。通常、初回接続には次が必要です。
- サーバーのIPアドレスまたはドメイン
root、ubuntu、adminなどのユーザー名- パスワードまたは秘密SSHキー
- 標準の
22以外を使う場合はSSHポート - サーバー側で有効になったSSHアクセス
ログインに成功すると、遠隔のLinuxサーバーのターミナルに入り、ローカルで作業するようにコマンドを実行できます。
サーバーがキーを使う場合
キーでログインすると、サーバーは秘密鍵が登録済みの公開鍵と一致するか確認します。この場合、パスワードをまったく使わないこともあります。キー認証は定期的な作業で、一般により信頼性が高く便利です。
通常の手順は次の通りです。
- 自分のコンピューターでキーを作成します。
- 公開鍵をサーバーに追加します。
- 毎回パスワードを入力せずに
sshで接続します。
LinuxとmacOSでは、次のコマンドでキーを生成することがよくあります。
ssh-keygen -t ed25519LinuxとmacOSから接続する
SSHはLinuxとmacOSに通常すでにインストールされています。ターミナルを開いて実行します。
ssh username@server_ip別のポートが必要なら、次を使います。
ssh -p 2222 username@server_ipキーで接続する場合は次のコマンドです。
ssh -i ~/.ssh/id_ed25519 username@server_ip初回ログイン後、目的のサーバーに接続できたことをすぐ確認すると安全です。
hostname
whoami複数のサーバーや環境を管理する場合に、とても役立つ簡単な習慣です。
Windowsから接続する
Windowsでは、PowerShellやWindows Terminalに組み込まれたOpenSSHと、PuTTYのような別のクライアントを使えます。多くの作業では組み込みの方法が最も簡単です。
PowerShellを開き、次を実行します。
ssh username@server_ip標準以外のポートの場合:
ssh -p 2222 username@server_ipキーを使うなら、そのパスを指定します。
ssh -i $env:USERPROFILE\.ssh\id_ed25519 username@server_ipPuTTYも同じ考え方です。アドレス、ポート、ユーザー名を入力し、キー認証ではクライアント設定で.ppkキーを読み込みます。
WindowsでSSHが起動しない場合
組み込みのSSHクライアントがインストールされていないことがあります。Windowsの設定でOpenSSH Clientコンポーネントを有効にするか、一時的にPuTTYを使います。
よくある接続エラー
問題はコマンドそのものではなく、パラメーターのどれかにあることが多いです。
Connection refused
通常は、サーバーでSSHサービスが動作していないか、ポートが閉じています。sshdが動作しているか、必要なポートがファイアウォールとサーバーの管理パネルで開いているかを確認します。
Permission denied
ユーザー名、パスワード、キーのいずれかが正しくないことがほとんどです。ログイン名、キーの正しいパス、公開鍵の登録、キーの一致を確認してください。
Host key verification failed
このメッセージは、SSHが認識しているサーバーの一覧であるknown_hostsに関係します。OSの再インストール、IPアドレスの変更、サーバーの再作成後に表示されることがあります。接続先が正しいと確認できたら、古いエントリを削除します。
ssh-keygen -R server_ipその後もう一度接続し、新しいサーバーキーを確認します。
Could not resolve hostname
DNSでホスト名が見つからないか、アドレスに入力ミスがあります。確認としてIPアドレスで接続してみてください。
SSHをより安全に使う
SSH自体は保護されていますが、いくつかの基本設定でミスや不要なログの量を大きく減らせます。
パスワードではなくSSHキーを使う
キー認証は定期的な作業で信頼性が高く便利です。サーバーがすでにキー用に設定されているなら、最初からキーを使います。
rootでのログインを無効にする
日常作業で直接rootとしてログインする必要はありません。通常ユーザーで接続し、必要な場合だけsudoで権限を上げる方が安全です。
追加対策として標準ポートを変更する
22を2222など別の値に変更できます。サーバーを攻撃から見えなくするものではありませんが、標準ポートだけを探す無差別スキャンやボットを減らせます。
known_hostsを確認する
SSHがサーバーキーの変更を警告したときは、メッセージを無視しないでください。無害な理由もありますが、なりすましの可能性もあります。サーバーを再インストールまたは交換した場合は、確認してからknown_hostsのエントリを更新します。
サーバー選びとの関係
VPSや専用サーバーを借りると、SSHが主な作業経路になります。パッケージのインストール、システム更新、Dockerのデプロイ、ログ確認、サービス状態の確認をSSHで行います。アクセスが安定していれば、不可解なログイン問題の調査ではなく作業に時間を使えます。
そのためホスティング会社を選ぶ際は、CPU、RAM、ディスク容量だけでなく、明確なSSHアクセスをすぐ得られるか、サーバーのパラメーターを確認しやすいか、管理を開始しやすいかも見ます。これらの用途にはtropic.hostが、余計な準備なしでVPSを始める実用的な選択肢になります。
短いまとめ
SSHでLinuxサーバーへ接続するのは通常簡単です。アドレス、ユーザー、パスワードまたはキーが必要です。LinuxとmacOSはターミナルだけで接続でき、Windowsでは組み込みのOpenSSHまたはPuTTYを使えます。失敗したら、まずポート、ログイン名、キー、known_hosts、続いてサーバー設定を確認します。定期的な作業ではSSHキーを使い、rootログインを無効にし、標準以外のポートを追加対策として利用しましょう。
FAQ
初回接続にはどのSSHコマンドを使いますか?
通常はssh username@server_ipで十分です。SSHが別のポートで動いている場合は-pを追加します。
WindowsからSSHでLinuxサーバーに接続できますか?
はい。PowerShellまたはWindows Terminalの組み込みsshコマンドが最も簡単です。PuTTYも利用できます。
SSHが新しいサーバーキーの確認を求めたらどうしますか?
サーバーを再インストールした、またはIPアドレスが変わった場合は正常です。理由が分からない場合は、目的のマシンに接続していることを先に確認してください。
SSHキーはなぜパスワードより優れていますか?
キーは定期作業で便利で、通常はパスワードより信頼性があります。認証情報を推測されるリスクを下げ、毎回パスワードを入力せずログインできます。
SSHポートの変更は必須ですか?
必須ではありません。ただしポート変更は、大規模な自動スキャンに対する追加の防御層として役立ちます。
