おつかれさまです!
記事を読んでくださりありがとうございます🌞
「そしたら、SSHでサーバーに接続して開発するからよろしくね!」

「SSHで接続、、、??」
実務に入った時に最初に言われた言葉です。。。
大急ぎでSSHの接続方法を探しました😨
でも、実際に開発や学習を進めていくと、
仮想マシンへの接続やGitHubとの連携など、
SSHが必要な場面が必ず出てくるんですよね。
特にエンジニアとして
ステップアップしていくなら、
- 仮想環境(例:CentOS)へのリモート接続
- GitHubへのセキュアなプッシュ
- サーバー管理やCI/CD設定の基礎知識
といった場面で
SSHの理解が“できる・できない”の差を生む
ことになります。
この記事では、
「SSHとは?」という基礎から、実際に仮想マシンへ接続する方法、
GitHubとの鍵認証連携、トラブル時の確認ポイントまで
をまるっと解説していきます。
「一度きちんとSSHを理解して、自信を持って使えるようになりたい」
そんなあなたのために書きました。
それでは、ゆっくりしていってください🐱
・SSHってよく聞くけど、正直よくわかっていない…という初心者エンジニア
・仮想マシンやリモート環境に接続したいけど、SSHの設定で詰まりがちな人
・公開鍵・秘密鍵の仕組みをちゃんと理解して使いこなしたいと感じている人
⭐️ SSHの仕組みと役割を、初心者でも理解できる言葉で学べる
⭐️ ローカル(Mac)から仮想マシン(CentOS)への接続方法をステップで解説
⭐️ 実務・学習を問わず、SSHの基本操作を“自信を持って扱える力”が身につく
SSHとは?初心者でもわかるようにざっくり解説
SSHとは?なぜ使うのか?
SSH(Secure Shell)は、
ネットワーク越しに安全に別のコンピュータに接続するためのプロトコルです。

暗号化されて安全に通信するための技術です!
(逆にフリーWifiはまる見えです、、、)
Linuxやサーバー、仮想マシン、リモート環境などに
ログインしたいときに必須の技術です。
- ネットワーク越しにコマンドを実行したい(例:仮想マシンにアクセス)
- ローカルのターミナルからリモート環境を操作したい
- GitHubなどのサービスと安全に通信したい
このような場面で、
通信を暗号化して安全にやり取りする手段としてSSHが使われます。
公開鍵と秘密鍵の仕組み
SSHでは「鍵認証方式」がよく使われます。
これは、以下のようなイメージです:
鍵の種類 | 役割 |
---|---|
秘密鍵(private key) | 自分だけが持つ「鍵」。他人には見せない! |
公開鍵(public key) | 接続先に渡す「鍵穴」。誰でも見てOK! |
イメージで例えると、、、
・あなたのMacは「鍵を持つ人」
・仮想マシンやGitHubは「鍵穴を設置した扉」
あなたは、自分のMacに“秘密鍵”を持っていて、
相手(仮想マシンやGitHub)には“公開鍵”を事前に登録しておきます。
接続するとき、相手は「この鍵穴にぴったり合う“本物の鍵”を持っているか?」を確認します。
ここで秘密鍵が合えば、「確かに本人だ」と判断されて、
パスワードなしで安全に接続できるというわけです。

SSHでできること(ユースケース)

実は、いろいろな場面で使うことがあります!
しっかり理解しておきたいですね👀
- 仮想マシンへのリモートログイン(例:Mac → CentOS)
- クラウド上のLinuxサーバー操作(例:AWS EC2への接続)
- GitHubとSSH接続して、push/pull を安全に行う
- VSCodeのリモート開発(Remote SSH 拡張機能)
つまり、SSHは単なる「接続ツール」ではなく、
セキュアなリモート操作を可能にする開発者の基礎スキルとも言えます。
実践:MacからCentOS仮想マシンにSSH接続する手順
ここでは、UTMで構築したCentOSの仮想マシンに、
ローカルMacからSSHで接続する方法を解説します。
CentOSにSSH用ユーザーを作成する
まずは、仮想Linuxマシンでユーザーを作ってみましょう!
まだ、仮想マシン作ってないよ〜という方はこちらを見て作ってみてください👀
【初心者向け】MacでCentOSをサクッと試す!UTMを使った軽量Linux環境の作り方を解説
仮想マシン(CentOS)にログインした状態で、
SSH接続用のユーザーを作成します。
rootユーザーでログインして次のコマンドで設定します。
sudo useradd -m testuser01
sudo passwd testuser01
# 2回パスワードを打ってください!
/home配下にtestuser01ができたら成功です👍
(こんな感じになると思います!)

念の為にSSH接続が許可されているかどうかも確認しておきましょう!
sudo systemctl status sshd
# → active (running) になっていればOK
もし起動していなければ、次のコマンドを実行してください!
sudo systemctl start sshd
仮想マシンのIPアドレスを確認する
次のコマンドを実行して、
192.168.xxx.xxx のようなローカルIPアドレスを探します!
今回はinet 192.168.64.2を使用します。
ip a

Mac側からSSH接続してみる
Macのターミナルを開いて、以下のように接続します:
ssh testuser01@192.168.64.2
初回は警告が出るかもしれませんがyesで続行で大丈夫です!
パスワードを入力するとCentOSに接続完了です🙆
接続を終了したいときは、`exit`と打てば大丈夫です!
試しに、ローカルのターミナルから編集してみます!

仮想マシン側でも確認してみましょう!

ちゃんとhogehogeが書いてあることが確認できます!
これでローカルからSSH接続ができましたね👍

意外と簡単だったんじゃないでしょうか??
仕組みとセットで自信を持って使っていきましょう!!
よくあるつまづきポイント
すべて解説するのは大変なので、
ここを調べたらいいよというポイントをお伝えします!
接続ができない(タイムアウトする)
仮想マシン側のネットワーク設定が「NAT」で外部と繋がっていない場合あり
→ 「Bridged」か「ホストオンリー」に設定して再起動を試す
Permission denied が出る
- ユーザー名やIPアドレスのスペルミス
- パスワードが間違っている
- sshdが起動していない
IPアドレスが見つからない
ip a でIPが表示されない場合はネットワーク設定を見直す
→ 仮想NICが有効かどうか、UTMの設定を確認
まとめ:SSHの理解は、エンジニアの第一歩
SSHは、最初こそ「難しそう」と感じる技術かもしれません。
でも実際は、仕組みと手順を1つずつ理解すれば、
確実に扱えるようになる“超実用的スキルです。
- SSHとは何か? 〜 なぜエンジニアにとって重要なのか
- 公開鍵・秘密鍵の仕組み 〜 安全な接続の仕組みをイメージで理解
- Macから仮想マシンへのSSH接続手順 〜 ユーザー作成からIP確認、接続までの流れ
- 接続時によくあるエラーとその対処法
まずは、この記事の通りに仮想マシンへの接続を試してみてください。
“つながる”体験をすることで、SSHの世界がぐっと身近になります。
👉 次の記事では、SSHキーを使ってGitHubと連携する方法を解説予定です。
pushエラーで悩んだことがある方は、ぜひチェックしてみてください!
【初心者向け】GitHubとSSH接続する方法|鍵の作り方からpushエラーの対処法まで完全ガイド

GitHubと連携して学習する方法も紹介してます!
コメント