SSHで接続する
前提:0-1が完了し、Lightsail上にUbuntu 24.04 LTSのインスタンスが「実行中」の状態から始めます。このページでは、まずLightsailのブラウザ内蔵ターミナルからサーバーに接続し、初めて黒い画面を触ります。そのあと定番のターミナルソフトTera Term(テラターム)のダウンロードと、接続に必要なpemキー(秘密鍵)の準備を行い、自分のパソコンから同じサーバーに接続できるようにします。コマンドはSET 1〜2、合計20行を手打ちします。
SSH※1は、離れた場所にあるサーバーに安全に接続するための仕組みです。この講座では今後すべてのページで、あなたはSSHを通じてサーバーの中に入っている状態からスタートします。
STEP ― ブラウザ内蔵ターミナルで接続する
Lightsailには、専用ソフトを何もインストールしなくても、ブラウザだけでサーバーに接続できる機能が用意されています。まずはこれを使って、一番手軽な方法でサーバーの中に入ってみましょう。
- Lightsailのコンソールで、0-1で作成したインスタンスの一覧を開きます。
- 対象インスタンスのカードにあるターミナルアイコン(オレンジ色の「>_」のようなアイコン)をクリックします。
- 新しいタブが開き、数秒待つと黒い画面が表示されます。すでに
ubuntu@ip-xxx-xxx-xxx-xxx:~$のような文字列が表示されていれば、接続成功です。
これでもう、あなたは自分のLinuxサーバーの中にいます。この画面のことをターミナル※2と呼びます。次のSET 1から、実際にコマンドを打っていきます。
ブラウザ内蔵ターミナルは手軽な反面、ブラウザのタブを閉じると接続も切れてしまいます。日常的にがっつり作業するときは、このあとSET 2で紹介するローカルPCからのSSH接続のほうが快適です。まずはブラウザ版で操作に慣れましょう。
SET 1 ― 接続できたことを確認する
- $whoami
- ubuntu
- $hostname
- $pwd
- /home/ubuntu
- $ip a
- $echo $HOME
- /home/ubuntu
- $echo $SHELL
- $uptime
- $date
- $cal
- $echo "hello from lightsail"
1行目のwhoami(who am iの略)は、今ログインしているユーザー名を表示するコマンドです。Lightsailで作成したUbuntuインスタンスには、最初からubuntuという管理用のユーザーが用意されており、出力例のようにubuntuと表示されれば正しく接続できています。
2行目のhostnameは、このサーバー自身に付けられている名前を表示します。Lightsailが自動で割り振ったip-172-xx-xx-xxのような名前が表示されるはずです。3行目のpwdは1-1で詳しく扱う「今いる場所を確認する」コマンドで、ここでは自分のホームディレクトリ/home/ubuntuにいることがわかります。
4行目のip aは、このサーバーが持っているネットワークの情報(IPアドレスなど)を一覧表示します。長い出力が返ってきますが、今は「サーバーにもネットワークの住所がある」ことが確認できれば十分です(詳しくは5-5で扱います)。
5行目のecho $HOMEは、$HOMEという環境変数※3の中身を画面に表示する命令です。echoは「そのまま表示する」コマンドで、$HOMEには自分のホームディレクトリのパスがあらかじめ入っています。6行目のecho $SHELLでは、今使っているシェル(コマンドを解釈するプログラム)が/bin/bashであることが確認できます。7行目のuptimeは、このサーバーが起動してからどれくらい時間が経ったかを表示します。
8行目のdateは現在の日付と時刻を、9行目のcalは今月のカレンダーを表示します。どちらもサーバーが今どの時刻で動いているかを確認する簡単なコマンドです。最後に10行目のecho "hello from lightsail"で、任意の文字列をそのまま画面に表示できることを確認します。echoは変数だけでなく、こうしたただの文字列もそのまま出力できる万能の「表示係」です。

初めて黒い画面で文字が動いたときって、ちょっと感動しない? あたしは最初whoamiを打って自分の名前が出てきたとき「サーバーが自分のこと覚えてくれてる!」って謎の感動をしたよ(笑)。ここから先、この画面がずっと相棒になるからよろしくね!
STEP ― Tera Termとpemキーを準備する
ブラウザ内蔵ターミナルは手軽ですが、この講座では毎日の練習用に、Windowsで長年定番の無料ターミナルソフトTera Term※5を使います。まずはTera Term本体をダウンロードしましょう。
- ブラウザで「Tera Term」と検索し、GitHubの公式リリースページ(TeraTermProject)を開きます(窓の杜などの大手ダウンロードサイトからも入手できます)。
- 最新版のインストーラ(
teraterm-5.x.x.exeのような名前のファイル)をダウンロードします。 - ダウンロードしたインストーラを実行し、設定はすべて既定のまま「次へ」で進めてインストールを完了します。
- スタートメニューに「Tera Term」が追加されていれば準備OKです(まだ起動しなくて大丈夫です)。
次に、サーバーの扉を開けるための鍵、pemキー(秘密鍵ファイル)をダウンロードします。これはLightsailの管理画面から入手します。
- Lightsailコンソール右上のメニューから「アカウント」を開き、「SSHキー」タブを選びます。
- 0-1でインスタンスを作成したリージョン(東京)のデフォルトキーの「ダウンロード」をクリックします。
LightsailDefaultKey-ap-northeast-1.pemという名前のファイルが保存されます。 - 保存場所は「ダウンロード」フォルダのままにせず、自分で決めた分かりやすい場所(例:ドキュメント内に
sshkeysフォルダを作る)に移しておきましょう。この講座では今後ずっとこの鍵を使います。

この.pemファイル、あたしは「ぺむちゃん」って呼んでるよ! サーバーの世界への扉を開けてくれる、無口なゲートキーパーの妖精なの。ぺむちゃんがいないと自分のサーバーにすら入れなくなっちゃうし、誰かに渡ると扉を開け放題にされちゃう。だから――ぺむちゃんは、ローカルにしっかりと保存してね!
STEP ― Tera Termでサーバーに接続する
Tera Term本体とぺむちゃん(pemキー)が揃ったら、いよいよ自分のパソコンからサーバーに接続します。
- Tera Termを起動すると「新しい接続」ダイアログが開きます。ホスト欄に0-1で確認した自分のインスタンスのパブリックIPアドレスを入力し、サービスはSSH、TCPポートは22のまま「OK」をクリックします。
- 初回は「セキュリティ警告」(このサーバーは初めて接続する相手です、という確認)が表示されるので、「続行」をクリックします。
- 「SSH認証」画面が開いたら、ユーザ名に
ubuntuと入力します。パスフレーズは空欄のままで構いません。 - 認証方式は「RSA/DSA/ECDSA/ED25519鍵を使う」を選び、「秘密鍵」ボタンからダウンロードしておいた
.pemファイルを指定します。ファイル選択画面で.pemが見えないときは、ファイルの種類を「すべてのファイル(*.*)」に切り替えると表示されます。 - 「OK」をクリックして、黒い画面に
ubuntu@ip-xxx-xxx-xxx-xxx:~$のプロンプトが表示されれば接続成功です。
この接続方式は公開鍵認証※4と呼ばれ、パスワードの代わりに鍵ファイルを使って本人確認を行います。なお、Macの人はTera Termの代わりに標準の「ターミナル.app」からssh -i 鍵ファイルのパス ubuntu@IPアドレスと打つことで、同じように接続できます。
SET 2 ― 一度出て、Tera Termでまた入る
SET 2では、まずブラウザ内蔵ターミナルからexitで抜け、そのあと上のSTEPの手順どおりTera Termで接続し直して、同じサーバーに戻ってこられたことをコマンドで確認します。exitを打つとブラウザのタブごと接続が切れるので、行番号3以降はTera Termの画面で入力してください。
- $pwd
- $exit
- logout
- $whoami
- ubuntu
- $hostname
- $pwd
- $echo $SSH_CONNECTION
- 203.0.113.24 51424 172.26.5.10 22
- $echo $USER
- $who
- $ls -a
- $echo "hello from Tera Term"
1行目のpwdで改めて現在地を確認したあと、2行目のexitでサーバーとの接続を終了します。exitは「今いる場所から抜ける」コマンドで、ここではSSH接続そのものを切断し、出力例のようにlogoutと表示されてブラウザのターミナルが閉じます。この講座では、ページの終わりにexitを打つ場面が何度も登場します。
ここで、上のSTEPの手順どおりTera Termでサーバーに接続し直します。ホストにパブリックIPアドレス、ユーザ名にubuntu、秘密鍵にぺむちゃん(.pemファイル)を指定して、プロンプトが表示されたら3行目以降をTera Termの画面で入力してください。3行目のwhoamiで出力例のようにubuntuと表示され、4行目のhostnameでブラウザ版と同じサーバー名、5行目のpwdで同じホームディレクトリ/home/ubuntuが確認できます。接続する道具が変わっただけで、中身はまったく同じサーバーです。
6行目のecho $SSH_CONNECTIONは、SSH経由で接続しているときだけ自動的にセットされる環境変数で、出力例のように「接続元のIPアドレス 接続元ポート サーバーのIPアドレス 22」の4つが並びます。あなたの自宅のパソコンから、サーバーの22番ポート(SSHの玄関)へ、公開鍵認証※4で入ってきたことがこの1行で確認できます。パスワードを一度も打たずに安全に接続できたのは、ぺむちゃん(秘密鍵)がゲートキーパーとして本人確認をしてくれたおかげです。
7行目のecho $USERは、SET 1で登場した$HOME・$SHELLと同じ環境変数の仲間で、今のユーザー名が入っています。8行目のwhoは、いまこのサーバーにログインしている人の一覧を表示するコマンドです。表示されるのはあなた1人のはずですが、接続元の情報も併せて記録されていることがわかります。最後に9行目のls -aで見慣れたホームディレクトリの中身を確認し、10行目のecho "hello from Tera Term"で、新しい相棒からの初あいさつをしてページを締めくくります。
.pem鍵ファイルは、あなたの家の合鍵のようなものです。誰かに渡したり、公開のGitリポジトリにアップロードしたりすると、サーバーに自由に入られてしまいます。鍵ファイルはローカルPCの外に出さないよう、取り扱いに注意しましょう。

Tera Termの認証画面でぺむちゃんが見つからなくて焦るの、あるあるだよ! ファイル選択のときに種類を「すべてのファイル」に切り替えるのを忘れてるパターンが多いから、思い出してね。あと、接続に失敗するときはユーザ名がubuntuになってるか、IPアドレスの打ち間違いがないかもチェック! 次のページからは、ブラウザ版とTera Term、どっちの接続方法でもOKだよ。
まとめ
0-2では、ブラウザ内蔵ターミナルでの初接続、Tera Termとpemキー(ぺむちゃん)の準備、そしてTera Termからの接続までを体験しました。このページで叩けるようになったコマンドを一覧にまとめます。
| コマンド | 何をするか | 覚え方 |
|---|---|---|
whoami | 今ログインしているユーザー名を表示する | who am I(私は誰?) |
hostname | サーバー自身の名前を表示する | host(サーバー)の名前 |
pwd | 今いるディレクトリを表示する | print working directory |
ip a | ネットワーク情報(IPアドレスなど)を表示する | ip address(の略式) |
echo $変数名 | 環境変数の中身を表示する | echo=そのまま表示 |
uptime | サーバーの起動継続時間を表示する | up(稼働している)time(時間) |
exit | 今の接続・シェルから抜ける | exit=出口 |
echo $SSH_CONNECTION | SSH接続の経路(どこから来たか)を表示する | SSHで来たときだけ入っている変数 |
who | 今ログインしている人の一覧を表示する | who(誰がいる?) |
ls -a | 隠しファイルも含めて一覧する | all(全部見せて) |
ssh -i 鍵 ubuntu@IP | (Mac等)コマンドでSSH接続する | 鍵(-i)を持って玄関(ssh)へ |
次のページ「0-3. ターミナルの読み方」では、プロンプトubuntu@ip-xxx:~$が何を表しているのかを1文字ずつ読み解き、最初の10コマンドを叩きます。
- SSH … Secure Shellの略。ネットワーク越しに別のコンピュータへ安全に接続し、コマンドを実行するための通信の仕組み。↩
- ターミナル … コマンドを文字で入力し、実行結果を文字で受け取るための画面(アプリケーション)。「黒い画面」と呼ばれることが多い。↩
- 環境変数 … システムやシェルがあらかじめ用意している、値を入れておく箱。
$HOMEや$PATHなどがあり、詳しくは6-1で扱う。↩ - 公開鍵認証 … パスワードの代わりに、対になった「公開鍵」と「秘密鍵」を使って本人確認を行う認証方式。秘密鍵(.pemファイル)を持つ人だけが接続できる。↩
- Tera Term … Windows用の無料ターミナルエミュレータ。日本発のオープンソースソフトで、SSH接続の定番ツールとして長年広く使われている。↩