SSHでサーバーに接続する方法:Windows・Mac・Tera Term対応
VPSのIPアドレスとユーザー名があれば、ssh コマンド1行で接続できます。PowerShell、Macのターミナル、Tera Term、RLoginの手順に加え、初回のフィンガープリント確認、全角入力の失敗、ホスト鍵変更の警告への対処まで解説します。
SSH でサーバーに接続する方法の結論
SSH でサーバーに接続するには、ターミナルで ssh ユーザー名@IPアドレス と入力します。初めての接続では、サーバーの「フィンガープリント」を確認する質問が出ます。事業者の管理パネルやコンソールに表示された値と同じかを確かめてから、yes と答えてください。そのあとパスワードを入力するか鍵ファイルで認証すると、サーバーのシェルが使えるようになります。
SSH(Secure Shell)は、ネットワーク越しにサーバーを安全に操作するための仕組みです。通信は暗号化されます。仕組みの詳しい説明はSSH とは何か、鍵と暗号化の仕組みにまとめてあります。以下では、実際に最初のシェルにたどり着くまでの手順だけを扱います。
手元に用意するものは次のとおりです。どれも VPS 事業者の管理パネルか、契約時のメールに書いてあります。
- サーバーの IP アドレス(例:
203.0.113.10) - ユーザー名(
root、ubuntuなど。OS のイメージと事業者によって違います) - パスワード、または秘密鍵のファイル
- ポート番号(特に指定がなければ 22)
以下のコマンドはすべて、あなたの手元のパソコンで実行するものです。サーバー側で実行するコマンドは、そのつど明記します。
どの SSH クライアントを使えばよいか
SSH で接続するためのソフトを SSH クライアントと呼びます。日本でよく使われているのは次の 4 つです。迷ったら、Windows でも Mac でも OS に最初から入っている ssh コマンドを使ってください。追加のインストールが要らず、エラーメッセージを検索すると情報が多く見つかるからです。
Windows:PowerShell と Windows Terminal
Windows 10(バージョン 1809 以降)と Windows 11 には、OpenSSH クライアントが標準で入っています。スタートメニューから「PowerShell」または「ターミナル」を開き、次のコマンドを実行してください。
ssh -VOpenSSH_for_Windows_ で始まるバージョン表示が出れば、そのまま使えます。もし「認識されません」というエラーが出たら、OpenSSH クライアントが入っていません。「設定」の「システム」から「オプション機能」を開き、「機能を追加」で「OpenSSH クライアント」を追加してください。追加したあとは PowerShell を開き直します。
Mac:ターミナル
macOS にも OpenSSH が最初から入っています。Finder の「アプリケーション」から「ユーティリティ」を開き、「ターミナル」を起動します。Spotlight(command キーとスペースキー)で「ターミナル」と入力しても開けます。インストールは必要ありません。
Tera Term
Tera Term は、日本の企業や学校で長く使われている Windows 用のターミナルソフトです。2026年10月時点の最新版は 5.7.0(2026年9月公開)です。ED25519 鍵での認証に対応しています。また 5.6.0 から、量子コンピューターへの対策を組み込んだ鍵交換方式 mlkem768x25519-sha256 と sntrup761x25519-sha512 にも対応しました。鍵交換(KEX、key exchange)とは、通信の暗号化に使う鍵を、サーバーとクライアントが安全に決める手順のことです。OpenSSH 10.0 からは mlkem768x25519-sha256 が標準の方式なので、Tera Term を使う場合は 5.6.0 以降にしておくと、新しいサーバーと同じ方式で接続できます。
起動すると「新しい接続」の画面が出ます。ホストの欄に IP アドレスを入れ、サービスで SSH を選び、TCP ポートを確認して OK を押します。次の認証画面でユーザー名を入れ、パスワードで入るか、鍵を使う方式を選んで「秘密鍵」ボタンから鍵ファイルを指定します。
RLogin
RLogin は日本で開発されている Windows 用のターミナルソフトで、MIT ライセンスで公開されています。2026年10月時点の最新版は 2.31.9(2026年9月25日公開)です。インストーラーはなく、配布されている zip ファイルを展開して RLogin.exe を実行します。認証には ssh-ed25519 や ECDSA の鍵が使えます。なお、プロジェクトのページには鍵交換方式の一覧が載っていません。そのため、ML-KEM を使う方式に対応しているかは、2026年10月時点ではページから確認できませんでした。接続先は「新規」から、ホスト名、ポート、ユーザー名、認証キーを登録して作ります。
基本のコマンド:ssh ユーザー名@IPアドレス
PowerShell でも Mac のターミナルでも、書き方は同じです。ユーザー名が root、IP アドレスが 203.0.113.10 なら、次のように入力します。
ssh root@203.0.113.10初めての接続では、まずフィンガープリントの確認が出ます。この確認は次の章で説明します。確認が終わると、パスワードを聞かれます。
root@203.0.113.10's password:ここでパスワードを入力しても、画面には何も表示されません。黒丸も * も出ません。これは入力した文字数を横から見られないようにするための動作で、故障ではありません。そのまま最後まで入力して Enter キーを押してください。パスワードが違うと Permission denied, please try again. と表示され、もう一度入力を求められます。
ログインに成功すると、表示がサーバーのプロンプトに変わります。Ubuntu なら root@サーバー名:~# や ubuntu@サーバー名:~$ のような形です。ここから先に打つコマンドは、すべてサーバー上で実行されます。
ポートが 22 以外のときは -p
SSH の標準のポート番号は 22 です。事業者やサーバー管理者が別の番号を指定している場合は、-p で番号を渡します。
ssh -p 2222 root@203.0.113.10ポート番号が違っていると、パスワードを聞かれる前にエラーになります。どのエラーになるかは、サーバー側のファイアウォールの設定によって変わります。
鍵ファイルで入るときは -i
パスワードではなく鍵で認証する場合は、-i で秘密鍵のファイルを指定します。指定するのは秘密鍵です。末尾が .pub のファイルは公開鍵なので、こちらを渡しても認証できません。
Mac の場合は次のとおりです。
ssh -i ~/.ssh/id_ed25519 ubuntu@203.0.113.10Windows の PowerShell では、$HOME があなたのユーザーフォルダーを表します。
ssh -i $HOME\.ssh\id_ed25519 ubuntu@203.0.113.10事業者からダウンロードした .pem ファイルも、同じように -i で指定できます。ポートの指定と組み合わせるなら ssh -p 2222 -i ~/.ssh/id_ed25519 ubuntu@203.0.113.10 です。
Mac で鍵ファイルを指定したとき、次のエラーが出ることがあります。
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
Permissions 0644 for '/Users/you/.ssh/id_ed25519' are too open.これは、秘密鍵をほかのユーザーも読める状態になっているため、ssh が安全でないと判断して使うのを拒んだという意味です。持ち主だけが読める状態に変えれば通ります。
chmod 600 ~/.ssh/id_ed25519毎回この長さを入力するのが面倒になったら ~/.ssh/config に接続先ごとの設定をまとめられますが、最初の接続ではここまでの書き方で十分です。鍵の作り方や保管の仕方は、SSH 鍵の作成と管理の基本で説明しています。
初回に出る質問:フィンガープリントを確かめてから yes と答える
初めて接続するサーバーでは、パスワードより前に次の質問が表示されます。以下は、現在の OpenSSH(10 系)が表示する文面です。Windows や macOS に入っている少し古い版では、句読点などの細かい部分が違うことがあります。
The authenticity of host '203.0.113.10 (203.0.113.10)' can't be established
ED25519 key fingerprint is: SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?サーバーは一台ごとに「ホスト鍵」という固有の鍵を持っています。フィンガープリントは、そのホスト鍵を短い文字列にしたものです。あなたのパソコンはまだこのサーバーのホスト鍵を知りません。だから、本当に目的のサーバーかどうかを人間に確認しているのです。
ここで何も見ずに yes と入力するのは危険です。通信の途中に別の機械が割り込んでいる場合(中間者攻撃、man-in-the-middle attack)、表示されるのは偽物のフィンガープリントだからです。そのまま yes と答えると、偽のサーバーにパスワードを送ることになります。
正しいフィンガープリントを確認する場所
比べる相手は、SSH 以外の経路で手に入れた値です。方法は 2 つあります。
- 事業者の管理パネルを見る。サーバーの詳細画面にホスト鍵のフィンガープリントを表示する事業者があります。
- 管理パネルの Web コンソール(ブラウザーで開くサーバーの画面)からログインし、サーバー上で次のコマンドを実行する。
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub次のような 1 行が表示されます。
256 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX root@サーバー名 (ED25519)SHA256: から始まる部分を、接続時の表示と比べてください。種類も合わせます。接続時の表示が ED25519 key fingerprint なら、比べるのは ssh_host_ed25519_key.pub の値です。また cloud-init を使うイメージでは、起動時のコンソールのログに -----BEGIN SSH HOST KEY FINGERPRINTS----- という行と、その下にフィンガープリントの一覧が出ます。これも比較に使えます。
yes の代わりにフィンガープリントを貼り付ける
目で 43 文字を比べるのは大変です。質問の最後にある [fingerprint] は、yes の代わりにフィンガープリントそのものを入力できるという意味です。コンソールで表示された SHA256:... の文字列をコピーして、質問に貼り付けてください。ssh が自分で比較し、一致すれば接続を続けます。一致しなければ Please type 'yes', 'no' or the fingerprint: と聞き直されます。この場合は no と答えて、接続先を確認し直してください。
確認が終わると、次の行が表示されます。
Warning: Permanently added '203.0.113.10' (ED25519) to the list of known hosts.「Warning」とありますが、エラーではありません。ホスト鍵を known_hosts というファイルに保存した、という報告です。Mac では ~/.ssh/known_hosts、Windows では C:\Users\あなたの名前\.ssh\known_hosts に保存されます。次回からは、この記録と照らし合わせて自動で確認されるので、質問は出ません。
Tera Term と RLogin でも、初回は同じ内容の確認画面が出ます。Tera Term では、確認画面でフィンガープリントの表示形式に SHA256 を選ぶと、コンソールの値とそのまま比べられます。
量子コンピューターに関する警告が出たとき
OpenSSH 10.1 以降のクライアントで古いサーバーに接続すると、ログインの前後に次の表示が出ることがあります。
** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html接続そのものは成功しています。サーバー側の OpenSSH が古く、量子コンピューターへの対策を組み込んだ鍵交換方式を持っていない、という意味です。今すぐ危険になるわけではありません。ただ、記録した通信を将来解読される可能性がある、という注意です。サーバーの OS を更新すると、この表示は消えます。
IME がオンのままだと command not found になる
日本語の環境で一番多い失敗がこれです。IME(日本語入力)がオンのまま入力すると、ssh が全角の ssh になります。全角の文字はコマンド名として認識されません。Mac のターミナルでは次のように表示されます。
zsh: command not found: ssh日本語版の Windows PowerShell では、「用語 'ssh' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません」という赤いエラーになります。
見つけにくいのは、全角スペースが混ざった場合です。ssh は半角で打てていても、そのあとのスペースが全角だと、シェルはそこを区切りとして扱いません。そのため、行全体が 1 つのコマンド名として読まれます。
zsh: command not found: ssh root@203.0.113.10@ だけが全角の @ になった場合は、ssh 自体は動きます。ただ、root@203.0.113.10 全体をホスト名として探すので、Could not resolve hostname で始まるエラーになります。
直し方は単純です。IME をオフにしてから、行全体を入力し直してください。Windows では「半角/全角」キー、Mac では「英数」キーで切り替えます。日本語のブログや社内資料からコマンドをコピーした場合も、全角の文字が混ざることがあります。おかしいと思ったら、コピーせずに手で打ち直すのが確実です。
OS を再インストールしたあとに出る警告
一度接続できていたサーバーで OS を再インストールすると、次回の接続で大きな警告が出て止まります。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
(中略)
Offending ED25519 key in /Users/you/.ssh/known_hosts:3
Host key verification failed.原因は、再インストールでサーバーのホスト鍵が新しく作り直されたことです。あなたのパソコンの known_hosts には古い鍵が残っているので、ssh は「前と違う鍵だから、別のサーバーかもしれない」と判断して接続を止めます。なぜこの確認が安全につながるのかは、SSH とホスト鍵の仕組みで説明しています。
自分で再インストールしたことがはっきりしているなら、古い記録を消します。
ssh-keygen -R 203.0.113.10次のように表示されれば、削除できています。
# Host 203.0.113.10 found: line 3
/Users/you/.ssh/known_hosts updated.
Original contents retained as /Users/you/.ssh/known_hosts.oldこのコマンドは Windows の PowerShell でも同じように使えます。ポート 22 以外で接続しているサーバーは、記録が [IPアドレス]:ポート の形で保存されています。その場合は、括弧ごと引用符で囲んで指定します。
ssh-keygen -R '[203.0.113.10]:2222'削除したら、もう一度 ssh で接続してください。初回と同じ質問が出るので、前の章の方法で新しいフィンガープリントを確認してから答えます。
大切な注意があります。再インストールをしていないのにこの警告が出た場合は、ssh-keygen -R を実行しないでください。本当に通信が割り込まれている可能性があります。まず管理パネルのコンソールからサーバーに入り、ホスト鍵のフィンガープリントを確認してください。
Tera Term は OpenSSH とは別に、自分専用の known_hosts ファイルを持っています。そのため、ssh-keygen -R を実行しても Tera Term の記録は変わりません。Tera Term では鍵が変わったことを知らせる警告画面が出るので、コンソールで新しいフィンガープリントを確認してから、置き換えて続行してください。
接続できないときに見るところ
うまくいかないときは、最後に表示されたエラーの文字列を見てください。原因の場所は、文字列でかなり絞り込めます。
ssh: connect to host 203.0.113.10 port 22: Connection timed out は、パケットが返ってこないという意味です。IP アドレスの間違い、ファイアウォールでの遮断、サーバーが止まっている、のどれかが疑われます。Connection refused は、サーバーまでは届いたものの、そのポートで SSH が待ち受けていないという意味です。この 2 つは原因の場所がまったく違います。切り分けの手順はConnection timed out と Connection refused の違いと調べ方にまとめました。
Permission denied (publickey) は、サーバーまでは届いていて、認証の段階で断られたという意味です。ユーザー名の間違い、-i で指定した鍵の間違い、サーバー側に公開鍵が登録されていないことが主な原因です。詳しくはPermission denied (publickey) の原因と直し方を見てください。新しく作った VPS で、事業者が案内したユーザー名で入れない場合は、cloud-init がユーザーを作成しなかったときの対処も確認してください。
どの段階で止まっているかわからないときは、-v を付けると、ssh が何をしているかが順番に表示されます。
ssh -v root@203.0.113.10Connecting to の行のあとで止まるなら、ネットワークの問題です。Authenticating to まで進んでいるなら、通信はできていて、認証で失敗しています。
ログインできたら最初にやること
シェルに入れたら、まず自分がどのユーザーで、どのサーバーにいるかを確認します。
whoami
hostname終了するときは exit と入力するか、Ctrl キーと D キーを同時に押します。表示が手元のパソコンのプロンプトに戻ります。
新しい VPS では、最初に済ませておくべき作業がいくつかあります。パッケージの更新、作業用のユーザーの作成、鍵認証への切り替えなどです。手順は新しい VPS で最初の 10 分にやることに順番に並べてあります。パスワードで入っているなら、早めに鍵認証へ移ってください。インターネットに公開されている SSH のポートには、パスワードを総当たりで試す接続が毎日届くからです。鍵に移ったあとの設定は、VPS の SSH を安全にする設定で扱っています。
FAQ
SSH でパスワードを入力しても画面に何も表示されません。壊れていますか?
壊れていません。SSH のパスワード入力では、入力した文字も、黒丸や * も表示されません。入力した文字数を横から見られないようにするための動作です。そのまま最後まで入力して Enter キーを押してください。間違っていると Permission denied, please try again. と表示され、もう一度入力を求められます。
Windows で ssh と入力すると「認識されません」と出ます。どうすればよいですか?
原因は 2 つ考えられます。1 つ目は、IME がオンのまま入力して ssh と全角になっている場合です。「半角/全角」キーで IME をオフにして、入力し直してください。2 つ目は、OpenSSH クライアントが入っていない場合です。「設定」の「システム」から「オプション機能」を開き、「OpenSSH クライアント」を追加してから PowerShell を開き直してください。ssh -V でバージョンが表示されれば使えます。
SSH のフィンガープリントはどこで確認すればよいですか?
SSH 以外の経路で確認します。事業者の管理パネルに表示されていればその値を使います。表示がなければ、管理パネルの Web コンソールからサーバーにログインし、ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub を実行してください。表示された SHA256: で始まる文字列を、接続時の質問に yes の代わりに貼り付けると、ssh が自動で比較します。
REMOTE HOST IDENTIFICATION HAS CHANGED が出たら、すぐに ssh-keygen -R を実行してよいですか?
自分で OS を再インストールした直後であれば、ssh-keygen -R IPアドレス で古い記録を消して問題ありません。再インストールでホスト鍵が作り直されたことが原因だからです。消したあとは、新しいフィンガープリントをコンソールで確認してから接続してください。再インストールをしていないのにこの警告が出た場合は、実行しないでください。まずコンソールからサーバーに入って、ホスト鍵を確認してください。
Tera Term と PowerShell の ssh コマンドは、どちらを使えばよいですか?
どちらでも同じサーバーに接続できます。これから覚えるなら、Windows に標準で入っている ssh コマンドをおすすめします。Mac や Linux でもそのまま同じ書き方で使えますし、エラーメッセージで検索したときに情報が多く見つかるからです。Tera Term を使う場合は、新しい鍵交換方式に対応した 5.6.0 以降を使ってください。