Linux、macOSから対象サーバへパスワード無しで高速ログインする


VPSや仮想マシンを複数台持っていて、手元の1台からSSHログインする際にパスワード入力の手間を減らすtipsです。Linux、ないしはMacOSから異なるLinuxサーバにログインする際に、ユーザー名とパスワードを入力してSSHログインするのは面倒なので、SSHクライアント鍵を用いて、パスワード無しでログインする方法です。パスワードなしと言っても、公開鍵を使っている分、こちらの方がセキュアです。

本作業はLinuxサーバを作ると必ず実施する作業なので、備忘録として。出典は『Linuxサーバ Hacks――プロが使うテクニック & ツール 100選』の#67『さらに高速なsshログイン』です。この本、既に出版から10年近く経っているにも関わらず、読んでみると楽しいんですね。

前提条件

  • 手元のPC、リモートのサーバ共に、同一のユーザー名を利用している事

最初に一度だけ実施すれば良い作業

  • SSHクライアント鍵の作成
  • ssh `basename $0` $*を仕込んだショートカットファイルの準備
  • .bashrcショートカットまでのパスを通す
# id_rsa.pubが無いときだけ実行
ssh-keygen -t rsa

# ~/serversディレクトリに、ssh-toファイルを作成する。
mkdir ~/servers
echo 'ssh `basename $0` $*' > ~/servers/ssh-to
chmod 500 ~/servers/ssh-to
echo 'export PATH=$PATH:~/servers' >> ~/.bashrc

サーバ構築のたびに実施する作業

普段使いのMacなり、良くログインするLinuxサーバなりで実施してください。windows上のcygwinなどでも良いと思います。

  • 新規サーバ構築時に1度のみ実行する。
  • ssh `basename $0` $*を仕込んだショートカットファイルの準備
  • .bashrcショートカットまでのパスを通す
# 環境に合わせて書き換えてください
export NEW_SERVER_IP="192.168.2.110"
export NEW_SERVER_NAME="new_hostname"

# hostsに上記のIPとホスト名を追記して
# 名前解決できるようにする
echo "$NEW_SERVER_IP $NEW_SERVER_NAME" | sudo tee -a /etc/hosts

# 対象サーバに対して、~/.sshディレクトリを作成して、
# そこに、ssh-keygen実行時に出来たid_rsa.pubの中身をauthorized_keysとして転送する
ssh $NEW_SERVER_NAME "mkdir .ssh; chmod 0700 .ssh"
scp ~/.ssh/id_rsa.pub $NEW_SERVER_NAME:.ssh/authorized_keys

# 最後に、ソフトリンクを貼る
ln -s ~/servers/ssh-to ~/servers/$NEW_SERVER_NAME

使用例

  • 新規サーバ構築時に1度のみ実行する。
  • ssh `basename $0` $*を仕込んだショートカットファイルの準備
  • .bashrcショートカットまでのパスを通す
# ssh で引数にコマンドを付けると対象ホストで実行可能なのを再現。
lasas@server1:~$ new_hostname df
# Filesystem     1K-blocks    Used Available Use% Mounted on
# udev             1013324       0   1013324   0% /dev
# tmpfs             204904    4624    200280   3% /run
# /dev/vda1       20959232 2613380  18345852  13% /
# tmpfs            1024516       0   1024516   0% /dev/shm
# tmpfs               5120       0      5120   0% /run/lock
# tmpfs            1024516       0   1024516   0% /sys/fs/cgroup
# tmpfs             204904       0    204904   0% /run/user/1000
# 

# 単純にSSHログインするのみ
lasas@server1:~$ new_hostname
# Welcome to Ubuntu 15.04 (GNU/Linux 3.19.0-15-generic x86_64)
#
#  * Documentation:  https://help.ubuntu.com/
#
#   System information as of Sun May 10 14:39:21 JST 2015
#
#   System load:  0.03               Processes:           99
#   Usage of /:   12.5% of 19.99GB   Users logged in:     0
#   Memory usage: 20%                IP address for eth0: 192.168.2.110
#   Swap usage:   0%
#
#   Graph this data and manage this system at:
#     https://landscape.canonical.com/
#
# 7 packages can be updated.
# 7 updates are security updates.
#
# Last login: Sun May 10 14:38:44 2015 from 192.168.2.111
lasas@new_hostname:~$
タグ付けされた , , . ブックマークする へのパーマリンク.

コメントを残す

メールアドレスが公開されることはありません。