みなさんはMacでサーバーに対してsshで接続する方法は完璧にマスターしていますでしょうか?
この記事ではMacでsshのコマンドを初めて使う方や、使い方を復習した方に向けてMacのターミナルでサーバーにsshで接続する方法についてまとめています。
Macのターミナルでサーバーにsshで接続する方法
まずMacのターミナルでサーバーにsshで接続する基本的な方法をご紹介し、その後より素早く効率的にsshのコマンド入力してサーバーにアクセスするための方法を解説していきます。
準備
接続するサーバーにsshでアクセスするために鍵ファイルを作成しましょう。
AWSではEC2のインスタンスをたてるときに鍵ファイルを作成し、pem形式のファイルをダウンロードすることになり、これが鍵ファイルになります。
鍵ファイルは「~/.ssh」に配置しておきましょう。
ターミナルを開き下記のコマンドを実行します。
chmod 600 ~/.ssh/鍵ファイル名
chmodはパーミッションを変更するコマンドです。上記コマンドでは鍵ファイルに対して自分だけ読み書きできるパーミッションに変更しています。
基本
sshの基本コマンドは下記の形です。ターミナルを開きコマンドを実行しましょう。
※鍵ファイルのパスやポート番号、ユーザー名やホスト名はご自身の環境にあわせて下さい。
ssh -i 秘密鍵ファイルのパス -p ポート番号 ユーザー名@ホスト名
上記のコマンドで接続すると初回のみ下記のような確認が表示されます。
The authenticity of host {IPアドレス} can't be established. ECDSA key fingerprint is SHA256:FHDfk+Kf9SKlqNUngoUBP8Wsl3B2UICcyxh9Us+NYjM. Are you sure you want to continue connecting (yes/no)?
ここではyesを選択しましょう。すると問題なければ無事にサーバーにssh接続されるはずです。
ssh/configを利用してsshコマンドを省略する
sshコマンドの基本形でホスト名やポート指定や鍵指定をしてコマンドを指定して接続してもいいですが、コマンドが長くなって面倒ですよね。
そこでssh/configの設定ファイルに設定情報を記述することで、タイプ数少なくサーバーに接続が出来ます。
やり方をご紹介します。
まずvimなどのエディターで「~/.ssh/config」ファイルを開きましょう。以下のように設定したいサーバーの情報を追記し、保存します。
Host [ホスト名を好きな名前で] HostName [ホスト名: IPアドレスなど] Port [ポート番号: 22など] IdentityFile [鍵ファイルのパス: ~/.ssh/鍵ファイル名など] User [接続する際のユーザー名]
この状態で先程自分で名前をつけたホスト名を使って「ssh ホスト名」とすることで、サーバーに接続できます。
Macでサーバーにssh接続できない場合の対処法
Macでサーバーにssh接続できない場合にチェックすべきポイントと対処法をご紹介していきます。
インターネットに接続できているか
当然インターネット経由でsshでサーバーに接続する場合にはインターネット接続できることは必須です。現在インターネットに接続できているか確認をしましょう。
またルーターやファイヤーウォールの設定次第でssh接続が許可されていない可能性もあります。もしその場合はネットワークを切り替えて再度ssh接続を試してみましょう。
鍵ファイルのパーミッションなどの問題
鍵ファイルが正しい鍵ファイルなのか、またパーミッションが適切なパーミッションになっているか再度確認しましょう。
鍵ファイルは公開鍵と秘密鍵の2種類があり、公開鍵を指定してssh接続をしている場合などがよくあります。一度鍵ファイルをチェックしておきましょう。
接続先サーバーの問題
接続先のサーバーやネットワークでssh接続や指定ポートでのアクセスが禁止されている場合があります。また特定のIPアドレスからのアクセスのみ許可(接続元を限定)している場合などもあります。
接続先の問題であれば、接続先のサーバー・ネットワークの管理者にアクセスを許可してもらいましょう。
ファイアーウォールの設定やサーバーではiptablesで接続対象のポートが開ける作業が必要になります。
接続先のポートやユーザー名があっているか
sshであればデフォルト22番ですが、セキュリティの観点から22ではなく、別のポート番号でアクセスさせている環境もあります。
一度対象のポート番号や更にユーザー名が正しい情報や対象サーバーのsshdの設定を再度確認しておきましょう。