※有料会員になるとこの動画をご利用いただけます
詳しい説明を読む
#13:SSHにおける鍵ファイルの配置
このチャプターでは、SSHにおける鍵ファイルの配置について学習します。
公開鍵を接続先のサーバに転送して、認証に利用できるようにする
scp コマンドを使うと、 SSH 接続を使ってリモートホストとファイルをやり取りすることができる
scp [オプション] [コピー元] [コピー先]
# コピー元: ~/.ssh/id_rsa.pub
# コピー先: user@remote-host のホームディレクトリ (~)
scp ~/.ssh/id_rsa.pub user@remote-host:~
# -i オプションを利用すると、認証に利用する鍵ペアを指定できる
scp -i ~/.ssh/id_rsa ~/.ssh/id_rsa.pub user@remote-host:~
# -P オプションを利用すると、ポートを指定できる
scp -P 2222 -i ~/.ssh/id_rsa ~/.ssh/id_rsa.pub user@remote-host:~
# ファイルのダウンロードも可能
scp user@remote-host:~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub
公開鍵のデータは「~/.ssh./authorized_keys」ファイルの中に格納する
リダイレクトを用いて追記することで、複数の公開鍵を 1 ファイルに格納する
cat *.pub >> ~/.ssh/authorized_keys
.ssh ディレクトリには 700、 authorized_keys ファイルには 600 のパーミッションを設定する
設定しないと認証が失敗する場合がある
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
ssh-agent コマンドを利用して認証エージェントを起動し、 ssh-add コマンドで秘密鍵を登録しておく
登録した情報を利用して、パスフレーズの入力を省略できる
ssh-agent コマンドが終了すると登録した情報は消える
$ ssh-agent bash # エージェントの子プロセスとして bash を起動
$ ssh-add ~/.ssh/id_rsa # 秘密鍵を登録
Enter passphrase for /home/user/.ssh/id_rsa: # パスフレーズを入力
Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa) # 登録完了
$ ssh-add -l # 登録した鍵の一覧を表示
2048 SHA256:xxxxxxxxxxxxxxxxxxxxxx /home/user/.ssh/id_rsa (RSA)
$ ssh user@remote-host # パスフレーズの入力を省略してログインできる