サーバへSSH接続する(Mac)

MacでサーバへSSH接続

SSHとは…

SSH(Secure SHell)はWebアクセスのSSL通信と同様、暗号化により盗聴を防ぐことと
鍵認証という仕組みによって実現される安全な通信規格(プロトコル)です。

SSH接続は後述する、

    • ホスト認証
    • ユーザー認証

のどちらもパスして初めて接続が可能となります。

SFTPについて

FTPクライアントなどファイル転送ツールのプロトコル選択欄で「SFTP」という規格がありますが、
こちらはファイル転送で使う旧来のFTP通信をSSHの仕組みで安全にしたものとなり、以降で解説するSSH接続と実質同様のサーバ接続方法となります。

(旧来のFTPは通信内容が暗号化されていません)

SSHコマンドでサーバ接続

サーバへのssh接続はクライアントソフトを使用しても行うことが出来ますが
Macの場合は標準で入っているターミナルからsshコマンドを使用して、サーバ接続及びリモート操作が可能になります。

(管理者権限の無い一般ユーザーでの接続を推奨します)

sshコマンドの基本

ターミナルから、ログインするユーザ名とホスト名を入力して接続します。

$ ssh ユーザ名@ホスト(IPアドレス)

sshポート番号を変更している場合

安全のために、接続するサーバがsshのポート番号を一般的に知られているデフォルトの「22」から変更している場合は、-pオプションで明示的にポート番号を指定して接続します。

ポート番号が10021番の場合
$ ssh -p 10021 ユーザ名@ホスト

ホスト認証

接続を行うとまず、ホスト認証(サーバ認証)が行われます。

SSHコマンド実行時に接続先のサーバからクライアントへ送られてくる「ホスト認証鍵」をクライアントで保存しているものと一致するかどうかを比較して接続先が虚偽のサーバへでないことを確かめます。

ですが、

初めてサーバへ接続するときには、クライアント(ここでいうMacのPC)はまだ当該の「ホスト認証鍵」を持っていませんので
サーバから送られてくる認証鍵をクライアントに保存してよいかどうかのメッセージが初回接続時に表示されます。

sshコマンドでサーバへ初回接続
yesを選択する(クライアントにホスト認証鍵を保存)

$ ssh vpsuser@XXX.XX.XXX.XXX
The authenticity of host 'XXX.XX.XXX.XXX (XXX.XX.XXX.XXX)' can't be established.
ECDSA key fingerprint is SHA256:XSmArdJOyX+xSeB2vTelnFfiHtNLwfvS7Crm3OYwzTI.
Are you sure you want to continue connecting (yes/no)?

yesを選択すると、ホーム配下の .ssh/known_hosts というファイルにホスト名と認証鍵の対応情報が書き込まれます。
(この時点ではまだ接続出来ていません)

保存が完了すると次回接続からはメッセージが表示されず、自動でホスト認証が行われます。
(万が一、接続先のサーバが虚偽のものだった場合はお互いの認証鍵が一致しないのでエラーメッセージが表示されるはずです)

ユーザー認証

ホスト認証が完了したら、次はサーバへSSH接続するユーザーの正当性を証明するための認証を行います。
(アカウントでログインするということ)

ユーザー認証には、

  • パスワード認証
  • 公開鍵認証

の2種類の方法がありますが今回は前者の※パスワード認証の方法で解説しますが、実際の運用では公開鍵暗号とディジタル署名の仕組みを用いた、より安全な公開鍵認証の方が推奨されています。

※サーバ側でパスワード認証が有効な場合に限ります。

初回ホスト認証時と同様にsshコマンドを実行し、接続するユーザーのパスワードを入力します

$ ssh vpsuser@XXX.XX.XXX.XXX
vpsuser@XXX.XX.XXX.XXX's password: 
Last login: Tue Jul 16 21:17:14 2019

パスワード認証が完了し、接続が完了するとターミナルの表示が接続先サーバの環境に変わるはずです。

[vpsuser@XXX.XX.XXX.XXX ~]$

(接続を切る場合は exitコマンド を実行します)

Follow me!