見出し画像

ロリポップサーバーでの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

いいなと思ったら応援しよう!