さくらサーバーにWebアプリをデプロイする際に、SSH接続でログインした。
いろいろな記事を参照にして、ログインできるようになった。
ただ、最後まで解決できなかったのが、秘密鍵のパスフレーズの省略。
ようやく、それが解決できたので、備忘録と、他に困っている人の助けになればと思い、記事にした。
参考記事
- Qiita - さくらのレンタルサーバーにSSHでログインする
- Qiita - ssh config
-
GitHub Docs -GitHubにSSHでログインする
-
SSH キーのパスフレーズを使う
←今回、パスフレーズの省略を解決したのがこの記事
-
SSH キーのパスフレーズを使う
環境
- Windows10
- Git Bash for Windows
手順
秘密鍵と公開鍵の作成
$ cd
$ ssh-keygen
パスワードを求められるので、入力して忘れないようにしておく。パスワードは適切に設定しておいたほうが、セキュリティに良い。
パスワードを省略できるように後で設定する。
さくらサーバーに公開鍵を登録する
公開鍵を送る
$ scp ~/.ssh/id_rsa.pub hoge@hoge.sakura.ne.jp:/home/sample/.ssh/authorized_keys
scpコマンドにて、公開鍵がauthorized_keysとしてさくらサーバーに送られた。
権限の変更
$ ssh hoge@hoge.sakura.ne.jp
でログインする。秘密鍵のパスワードを聞かれるので入力。
Welcome to FreeBSD!
と表示されれば、ログインできた。
ログインした状態で
% chmod 600 .ssh/authorized_keys
で権限を変更する。
.ssh/configを設定する
下記のように表記することで、設定したHost名でログインできるようになる。
Host sakura_server
HostName [ユーザー名].sakura.ne.jp
User [ユーザー名]
IdentityFile ~/.ssh/id_rsa
下記のように打ってログインできるようになった。
$ ssh sakura_server
秘密鍵のパスワードの省略設定
参考記事はこれ。
SSH キーのパスフレーズを使う
Git Bash を開いたときに、ssh-agent を自動的に実行できるようにする。
$ touch ~/.bash_profile
viやエディターに以下をコピペする。
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi
これでGitBashを開くと、1回だけ秘密鍵のパスフレーズを求められる。
これで次回以降は、パスフレーズを聞かれることなく、ログインできるようになった。シャットダウンするまでは入力不要とのこと。
やったね!!