はじめに
リモートサーバーへの安全な接続を可能にするSSH (Secure Shell) は、開発者やサーバー管理者にとって欠かせないツールです。
本記事では、SSHの概要からキーの作成、ログイン手順、設定カスタマイズ、よくあるトラブルの解決方法までをまとめてみました。
SSHとは何か?
SSHはネットワークを介した安全な通信を実現するプロトコルです。
主に以下の用途で利用されます
- リモートサーバーへの安全なログイン
- ファイルの転送
- コマンドのリモート実行
暗号化技術を用いるため、第三者による通信内容の盗聴や改ざんを防ぐことができるのが大きな特徴です。
SSHキーの作成方法
公開鍵認証とは?
SSHでは公開鍵認証を使用することで、パスワードよりも安全かつ便利なログインが可能です。
この方式では、以下の2つの鍵を使います
- 公開鍵: サーバーに登録する鍵
- 秘密鍵: クライアントに保管する鍵
SSHキーを作成する手順
ターミナルで以下のコマンドを実行することでSSHキーが作成できます
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
コマンドを順に解説してみます
-t rsa
: RSAアルゴリズムを指定
-b 4096
: 鍵の長さを指定(4096ビット)
-C "your_email@example.com"
: メールアドレスを設定
次に保存先とパスフレーズを入力します。
保存先についてはデフォルトの保存先(~/.ssh/id_rsa)を推奨します。
パスフレーズを設定すると、秘密鍵のセキュリティが向上します。
最後に下記コマンドで公開鍵をサーバーに登録します(サーバーの~/.ssh/authorized_keysに保存される)
user: サーバー上のユーザー名
remote_host: サーバーのIPアドレスまたはドメイン名
$ ssh-copy-id user@remote_host
// ssh-copy-id ユーザー名@接続先
SSHログインの手順
SSHキーを登録したら、以下のコマンドでリモートサーバーにログインできるか確認してみましょう
ssh username@192.168.1.100
// ssh user@remote_host
SSH設定のカスタマイズ
複数のサーバーにログインする場合、~/.ssh/configファイルを設定することで作業効率が向上します。
設定例
以下の内容を~/.ssh/configに記述します:
Host myserver
HostName 192.168.1.100
User username
IdentityFile ~/.ssh/id_rsa
このように書くことで
ssh username@192.168.1.100
これが
ssh myserver
こうなります!
何度も接続するサーバーなどはこのように設定しておくと効率よく作業を進められるようになります。
おわりに
SSHを使いこなすことで、安全かつ効率的にサーバー管理が可能になります。
機会があれば~/.ssh/configのところはもう少し深掘りしてみようと思います
参考記事