MacのターミナルからSSHでサーバに接続するには以下のコマンドで接続できますが、ログインの度にログイン名やホストネーム、パスワードを入力するのは面倒なので、ホストネームだけでログインできるようしたいと思います。
#userにはログインするユーザー名 hostにはサーバ名若しくはIPアドレスを入力
ssh -l user host
Macのターミナルからホストネームだけでログインするには事前に設定ファイルを作成し、その設定ファイルに基づいて秘密キーを使って接続できるようにする必要があります。
この記事では、秘密キーの作成方法と秘密キーを使った接続方法、ホスト名だけで接続するための設定ファイルの作成方法について解説したいと思います。
※なお、秘密鍵が第三者に漏れると不正アクセスされますので、厳重に管理してくださいね。
STEP1 秘密キーや設定ファイルを保持する場所の作成
- アプリケーション→ユーティリティ→ターミナル.appを起動します。
- SSH鍵の保存場所を作成します。
- セキュリティの観点から所有者のみにフルアクセスの権限を与えます。
#.sshディレクトリ作成
mkdir ~/.ssh
#パーミッションの変更
chmod 700 ~/.ssh
STEP2 秘密キーと公開キーの作成
- SSHキー作成コマンドを実行します。
- 秘密キー・公開キーが作成されたことを確認します。
- 作成した秘密キーのアクセス権を設定します。
#ssh-keygenに-tオプションを付けて暗号タイプrsaを指定
ssh-keygen -t rsa
Enter file in which to save the key (/Users/username/.ssh/id_rsa): →キーの作成場所。エンターで次に進む
Enter passphrase (empty for no passphrase): → パスフレーズの設定。不要であればそのままエンターで次に進む
Enter same passphrase again: →パスフレーズの確認。
これで秘密キーと公開キーが作成されます。
#lsコマンドで格納ファイル確認
ls ~/.ssh
id_rsa id_rsa.pub
#パーミッション変更
chmod 600 ~/.ssh/id_rsa
STEP3 公開キーをサーバにアップ
- 公開キーの内容をクリップボードにコピーします。
- サーバにログインし公開キーを設置する準備をする
- 公開キーを設置する
- 作成したauthorized_keysのアクセス権を設定します。
#出力(cat)内容をpbcopyコマンドでクリップボードにコピー
cat ~/.ssh/id_rsa.pub | pbcopy
#ディレクトリの作成(サーバ側)
mkdir ~/.ssh
#パーミッションの設定
chmod 700 ~/.ssh
#authorized_keysを作成しクリップボードにコピーした公開キーの内容をペーストする
vi ~/.ssh/authorized_keys
authorized_keysがviで開きますので、ここに⌘+vで公開キーの内容ペーストします。
ペーストできたら、escキー→:wqでviを閉じます。
#パーミッションの設定
chmod 600 ~/.ssh/authorized_keys
#サーバからログアウト
exit
ここまでが秘密キーで接続するための準備となります。
一度この状態で秘密キーを使って接続できるか確認してみます。
#サーバに接続する
ssh -l ログインユーザ名 ホストネーム( or IPアドレス)-i ~/.ssh/id_rsa
ログインできない場合はauthorized_keysの内容やアクセス権の影響でログインできない可能性があります。
この辺りの設定や内容を見直して再接続してみてください。
STEP4 ホスト名だけでSSH接続
ホスト名だけでSSH接続するには、はじめに説明したとおり、設定ファイルに接続情報を記入しておき、ホスト名だけでログインできるようにします。
- サーバからはログアウトしローカル端末に移動する。
- コンフィグファイルの作成と設定を記入する
- configファイルへのアクセス権の設定
#サーバからログアウト
exit
#configファイルの作成+開く
vi ~/.ssh/config
#iを押してインサーモードへ移行し以下を記述
#※かっこは省いてください。
host ServerName (この名前でログインします)
hostname 192.168.1.1 (サーバのIPアドレスを記入)
user dotinstall (ログインするユーザ名を記入)
Port ポート番号
IdentityFile ~/.ssh/id_rsa
#記入を終えたら、escキー→:wqでviを閉じます。
#パーミッションの設定
chmod 600 ~/.ssh/config
以上でホストネームだけで接続ができるようになります。
では、最後に設定したサーバネームでログインしてみましょう。
#サーバ名でログイン
ssh ServerName
なお、秘密キーではなく、パスワードで認証する場合は、パスワードの入力が必要です。