1. はじめに
こんにちは。西日本クラウドテクノロジー部の三輪です。
今回は公開鍵認証を使用してscpコマンド実行時に求められるパスワード入力を省略する方法を紹介したいと思います。
2. 公開鍵認証とは
公開鍵認証とは「秘密鍵」と「公開鍵」のペアを用いた認証方式です。サーバーへ接続するクライアント側で秘密鍵と公開鍵のペアを作成し、そのうち公開鍵のみをサーバーに登録します。そしてクライアント側から接続する際は秘密鍵で署名を作成し、サーバー側では登録した公開鍵でこの署名を検証し成功した場合に接続が許可されるという仕組みです。
3. 準備するもの
- 接続先のLinuxサーバー
- scpコマンドでコピーするファイル
4. 公開鍵・秘密鍵の作成、登録手順
- 以下のコマンドを実行します。
ssh-keygen -t rsa -b 4096
- 赤枠の部分は作成する鍵のファイル名を入力し、それ以降は全てEnterを押下してください。
- 作成したキーペア(2種類の鍵ファイル)は/Users/ユーザー名/.sshに配置してください。
※手順2でこのディレクトリに作成している場合は不要 - 以下のコマンドで公開鍵をサーバーに配置します。
ssh-copy-id <サーバのユーザ名@サーバのホスト名>
- 赤枠の部分には配置するサーバーのパスワードを入力してください。
5. scpコマンド実行
- 以下のscpコマンドを実行します。
scp -i <秘密鍵のパス> <コピーするファイルのパス> <コピー先サーバーの接続情報>:<コピー先のディレクトリの絶対パス>
- コマンド実行後にパスワード認証が求められず、以下のように表示されれば成功です。
- 実際にサーバーに接続して確認します。
6. さいごに
今回は公開鍵認証を用いたscpコマンドの実行方法について紹介しました。パスワード認証をスキップできるのでシェルスクリプトなどで自動化する際にも扱いやすいかと思いますので、ぜひ活用してみてください。