ML競馬育成計画

技術ブログ×競馬予測

【SSH】macOSでssh-agentを使ってVPSへのSSH接続を簡略化する

開発したスクリプトの中で、ローカルホストからVPSに公開鍵認証を用いてSSH接続する時に、毎回公開鍵のパスフレーズを入力するのがちょっと面倒だったので、認証エージェントという仕組みを利用してsshの認証を簡略化してみました。

認証エージェントとは?

ユーザに代わって公開鍵認証を行うプログラムのことです。ユーザは認証エージェント認証情報を渡すことで、認証処理をエージェントに肩代わりさせることが出来ます。リモートホストにログインする時に、いちいちパスフレーズやパスワードを入力するのが億劫な人は、是非使うべきですね。

※本記事の各種コマンドは、「macOS Sierra 10.12.6」で検証しています。

ssh-agentを使ってみる

認証エージェント(ssh-agent)の起動を確認

まず認証エージェントが動いているか、確認してみます。macOSの場合、デフォルトで起動していると思うので、明示的な起動処理は不要です。

$ ps aux | grep ssh-agent
ユーザ名       14752   0.0  0.0  2462356   7448   ??  S    火08AM   0:00.02 /usr/bin/ssh-agent -l

秘密鍵の登録

秘密鍵ssh-agentに渡します。-Kオプションを付与する事で、キーチェーンストアに鍵が登録され、自動的に呼び出されるようになります。

$ ssh-add -K .ssh/mac_vps_ppk.ppk
Enter passphrase for .ssh/mac_vps_ppk.ppk: 
Identity added: .ssh/mac_vps_ppk.ppk (.ssh/mac_vps_ppk.ppk)
秘密鍵登録出来ない問題

macOS Sierraの場合、デフォルトだとキーチェーンを使えない!(再起動したパスフレーズの入力を求められる)という問題が発生するようです。下記のサイトで、対処法が紹介されいます。

https://h2ham.net/macos-sierra-use-keychain

登録された鍵の確認

登録されている鍵を確認します。先程登録した鍵が表示されているかと思います。

$ ssh-add -l
2048 hoge/fuga
 .ssh/mac_vps_ppk.ppk (RSA)

SSH接続を試してみる

この状態でリモートホストにログインすると、毎回入力を求められていた対話的なパスフレーズの入力が求められなくなっているかと思います。

参考にさせて頂いた書籍

OpenSSH[実践]入門 (Software Design plus)

OpenSSH[実践]入門 (Software Design plus)