読者です 読者をやめる 読者になる 読者になる

iterm2をインストールしてパスワード無しでSSHログイン出来るようにする

サーバー 開発環境

OSXにHomeBrew経由でiterm2をインストール。SSHに認証鍵を入れてパスワード未入力で、開発環境の仮想マシン(Virtualbox+Ubuntu Server14)にSSHログインできるようにする。


iTerm2じゃなくて、Terminal.appでも同様の事はできるようだが、ssh経由での作業が常套なのでより便利なiTerm2をOSXインストールする。OSXバージョンは10.10.4 Yosemite。
f:id:giraffyk1:20150803150746p:plain

OSXにiTerm2をインストール

iTerm2 - Mac OS Terminal Replacement
該当バージョンのzipファイルをダウンロードした後、解凍。出てきたiterm.appをアプリケーションフォルダに突っ込んでから、起動。
f:id:giraffyk1:20150806125548p:plain
普通に起動した。が、terminal.appと変わらない。

homebrew経由でrictyフォントをインストール

homebrewは入れておいた。Homebrew — OS X用パッケージマネージャー 。mac用のパッケージ管理ソフト。環境は全て仮想マシンに入れ込むので、homebrewから入れるのはterminalやコードを書く時の表示に使いたいfontだけ。

me:~ me$ brew tap sanemat/font
==> Tapping sanemat/font
Cloning into '/usr/local/Library/Taps/sanemat/homebrew-font'...
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 2 (delta 0), pack-reused 0
Unpacking objects: 100% (5/5), done.
Checking connectivity... done.
Tapped 1 formula (29 files, 120K)

me:~ me$ brew install ricty
==> Installing ricty from sanemat/homebrew-font
==> Installing dependencies for sanemat/font/ricty: libtool, gettext, lib
==> Installing sanemat/font/ricty dependency: libtool
==> Downloading https://homebrew.bintray.com/bottles/libtool-2.4.6.yosemite.bott
######################################################################## 100.0%
==> Pouring libtool-2.4.6.yosemite.bottle.tar.gz
==> Caveats
(中略)
==> sh ./ricty_generator.sh /usr/local/Cellar/ricty/3.2.4/share/fonts/Inconsolat
==> Caveats
***************************************************
Generated files:
  /usr/local/Cellar/ricty/3.2.4/share/fonts/Ricty-Bold.ttf
  /usr/local/Cellar/ricty/3.2.4/share/fonts/Ricty-Regular.ttf
  /usr/local/Cellar/ricty/3.2.4/share/fonts/RictyDiscord-Bold.ttf
  /usr/local/Cellar/ricty/3.2.4/share/fonts/RictyDiscord-Regular.ttf
***************************************************
To install Ricty:
  $ cp -f /usr/local/Cellar/ricty/3.2.4/share/fonts/Ricty*.ttf ~/Library/Fonts/
  $ fc-cache -vf
***************************************************
==> Summary
🍺  /usr/local/Cellar/ricty/3.2.4: 12 files, 19M, built in 82 seconds

ダウンロードとフォントコンパイルが完了したようだ。指示にしたがってフォントファイルである.ttfを配布する。

me:~ me$ cp -f /usr/local/Cellar/ricty/3.2.4/share/fonts/Ricty*.ttf ~/Library/Fonts/
me:~ me$ fc-cache -vf
/usr/share/fonts: skipping, no such directory
/System/Library/Fonts: caching, new cache contents: 158 fonts, 0 dirs
Library/Fonts: caching, new cache contents: 423 fonts, 0 dirs
/Users/me/Library/Fonts: caching, new cache contents: 5 fonts, 0 dirs
/Users/me/.local/share/fonts: skipping, no such directory
/Users/me/.fonts: skipping, no such directory
/usr/local/var/cache/fontconfig: cleaning cache directory
/Users/me/.cache/fontconfig: not cleaning non-existent cache directory
/Users/me/.fontconfig: not cleaning non-existent cache directory
fc-cache: succeeded

いくつかフォルダが見つからなかったようだがまあ大丈夫だろう。
f:id:giraffyk1:20150806130144p:plain
iTermのiTerm→Preference→[Profiles]→Default→[Text]のRegular FontでChange Fontを選択してみた状態。Rictyフォントがインストールされたのが確認できた。

itermの細かい設定は後ほどとして、開発環境の仮想マシンへのsshをパスワード無くログイン出来るようにする。

SSH認証鍵の設定とパスワード無しでのSSHログイン動作確認

[OpenSSH] SSHサーバにパスワードなしでログインする方法 - Life with ITを参考に、鍵を作る

me:~ me$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/Users/me/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/me/.ssh/id_dsa.
Your public key has been saved in /Users/me/.ssh/id_dsa.pub.
The key fingerprint is:
56:18:c5:0d:3d:27:81:de:43:26:6b:e2:55:ef:8d:0e me@me.local
The key's randomart image is:
+--[ DSA 1024]----+
|        .oo=..   |
|         o+ O .  |
|        ...B =   |
|        ..= o .  |
|       .S+   o o |
|       ..   E o .|
|             o   |
|              .  |
|                 |
+-----------------+

続いてhomebrew経由で ssh-copy-idツールをインストール。

me:~ me$ brew install ssh-copy-id
==> Downloading https://homebrew.bintray.com/bottles/ssh-copy-id-6.8p1.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring ssh-copy-id-6.8p1.yosemite.bottle.tar.gz
🍺  /usr/local/Cellar/ssh-copy-id/6.8p1: 7 files, 344K

無事インストールできたので、鍵を開発環境にssh越しにコピーする。

me:~ me$ ssh-copy-id -i ~/.ssh/id_dsa.pub giraffy@pedev

/usr/local/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

/usr/local/bin/ssh-copy-id: ERROR: ssh: connect to host pedev port 22: Operation timed out

時間がかかるな…と思っていたら、タイムアウトした。仮想マシンが立ち上げるのを忘れていた。Virtualboxで仮想マシンを立ち上げて再実行。

me:~ me$ ssh-copy-id -i ~/.ssh/id_dsa.pub giraffy@pedev
The authenticity of host 'pedev (192.168.56.111)' can't be established.
RSA key fingerprint is 11:b8:da:2d:5f:bc:5e:7c:88:96:25:d4:7a:b1:fc:4c.
Are you sure you want to continue connecting (yes/no)? yes
/usr/local/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/local/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Number of key(s) added:        1
giraffy@pedev's password:

Now try logging into the machine, with:   "ssh 'giraffy@pedev'"
and check to make sure that only the key(s) you wanted were added.

INFO: 他のインストール済みのキーを除外して、新しいキーでログインを試みています
INFO: 合計1つのキーがインストールされます。 -- 下の表示は新しくインストールされるキーです
"ssh 'giraffy@pedev'"にログを書こうとしています。必要なキーだけが正しく追加されているかチェックしておいてください。

というわけで無事コピーできた模様。ssh-copy-idを使った場合、サーバー側でのキーファイル名やパーミッションは自動で調整されるらしい。というわけで早速パスワード入力無しでログインを試みる。

me:~ me$ ssh giraffy@pedev
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.16.0-30-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Thu Aug  6 14:37:04 JST 2015

  System load:  0.27              Processes:           79
  Usage of /:   12.8% of 8.50GB   Users logged in:     0
  Memory usage: 5%                IP address for eth0: 10.0.2.15
  Swap usage:   0%                IP address for eth1: 192.168.56.111

  Graph this data and manage this system at:
    https://landscape.canonical.com/

Last login: Tue Aug  4 17:02:28 2015 from 192.168.56.101
giraffy@pe-dev:~$ 

素晴らしい! ログイン出来た。

あとは、itermのprofilesに、command部分をgiraffy@pedevとしたものを保存すれば、itermからクリックひとつで接続できるようになる。

【参考】
iTerm2 - Mac OS Terminal Replacement
[OpenSSH] SSHサーバにパスワードなしでログインする方法 - Life with IT