この記事は、1分で実現できる有用な技術 Advent Calendar 2014 – Qiitaの1日目の記事です。

去年もこのAdvent Calendarに参加していて【1分で実現できる有用な技術】Mac OS X 10.9(Mavericks)でズーム機能を使うという記事を書いていました。

今日1日中、このネタを考えたのですがパッとしたものが思いつきませんでしたので、Macにssh-copy-idを作る方法を解説します。


通常対象のサーバに公開鍵を登録する場合、一度サーバにsshして、.sshディレクトリを作成して、パーミッションを変更して…といった手段が必要です。コマンドにすると5行くらいになりますし、公開鍵をコピーしなければなりません。

local $ ssh user@server
server $ mkdir .ssh
server $ chmod 700 .ssh
server $ echo "ssh-rsa ..." >> .ssh/authorized_keys
server $ chmod 600 .ssh

しかし、ssh-copy-idを使うと、以下の1行でローカルの公開鍵を対象のサーバに配置することができます。

local $ ssh-copy-id user@server

ここでは、ssh-copy-idというコマンドを使うのですが、通常このコマンドはMac OS Xには入っていません。

ssh-copy-id自体はシェルスクリプトなので、コピーすれば一応動作しますがデフォルトの公開鍵が取得できないなど少し挙動が異なるため、Mac OS X用のssh-copy-idを以下のコマンドでインストールしましょう。

local $ curl -L https://raw.githubusercontent.com/beautifulcode/ssh-copy-id-for-OSX/master/install.sh | sh

これで、たった1行で公開鍵をサーバに登録できるようになりました。公開鍵認証に設定した後はあまり役目のないコマンドですが、登録する際の手間は大幅に減ったと思います。


2日目: 買ってきたWindowsマシンに1分でいつものアプリケーションを投入する