
Photo by
hami3
ロリポップサーバーでのSSH接続と自動ログイン方法
ロリポップサーバーでのSSH接続と自動ログイン(パスワード毎回入力不要)を、本記事に示す一連のコマンドで一気に実現します。前提として、スタンダードプラン以上でSSHを有効にしてください。Windowsでは、CygwinやWSLなどを使用します。
# ローカル側での作業です。
mkdir ~/.ssh
chmod 700 ~/.ssh
echo 'HostKeyAlgorithms ssh-rsa' >> ~/.ssh/config
echo 'PubkeyAcceptedKeyTypes +ssh-rsa' >> ~/.ssh/config
echo 'UpdateHostKeys no' >> ~/.ssh/config
ssh-keygen -t rsa
# 公開鍵をサーバーへ転送します。
scp -P 2222 ~/.ssh/id_rsa.pub <var><アカウント名></var>@<var><サーバー名></var>:
# パスワードを入力します。
ssh <var><アカウント名></var>@<var><サーバー名></var> -p 2222
# パスワードを入力します。
# ここからサーバー側での作業です。
mkdir ~/.ssh
cat id_rsa.pub >> ~/.ssh/authorized_keys
rm id_rsa.pub
exit
# ここからローカル側での作業です。
# 再度以下を実行しパスワードを求められなかったら、自動ログイン成功です。
ssh <var><アカウント名></var>@<var><サーバー名></var> -p 2222
上記まででSSH接続と、自動ログインができるはずです。
ここからは応用です。ローカル側からサーバー側へファイル完全同期(rsync -av --delete)するのは以下のコマンドです。完全同期が圧倒的速さ(WinSCPの同期コマンドで5分くらい掛かっていたのが、数秒レベルに!)で終わります。ただし、コマンドを間違うとすべてを失い兼ねませんので、下記コマンドに--dry-run(実際に転送を行わない)を付けています。特に、<var><ローカル側パス></var>と<var><サーバー側パス></var>の末尾のスラッシュ有無に気を付けてください。
rsync -av --delete --dry-run -e 'ssh -p 2222' <var><ローカル側パス></var> <var><アカウント名></var>@<var><サーバー名></var>:<var><サーバー側パス></var>
具体例:
rsync -av --delete --dry-run -e 'ssh -p 2222' ~/local_homepage/ lolipop.jp-dp01234567@ssh.lolipop.jp:~/web