SSH 秘密鍵を利用する

Codaについての面白い使い方はないものかとWebをさまよっていると、「Codaで秘密鍵を使ってSFTPでサーバにアクセスする方法 – bits and bytes」を見つけて早速導入することにしてみました。

ssh_configについて調べてみると、「$HOME/.ssh/configを活用していますか?」なんてのも見つけてSSHの秘密鍵について再学習したのでした。

サーバにファイルをアップロードする際に、パスワード認証を使ってsftp接続できていれば、ある程度のセキュリティは確保されているので、なにが何でも公開鍵暗号を利用しての接続をすることはないですよ。

では、公開鍵暗号を設置する方法から書いておきます。コマンドラインでの操作が主になりますので、ある程度の知識が必要になります。

まずは、公開鍵/秘密鍵の生成をローカルで行います。

$ ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/Users/name/.ssh/id_dsa): # Returnキーを押す
Enter passphrase (empty for no passphrase): # パスフレーズを入力する
Enter same passphrase again: # 再度パスフレーズを入力する
Your identification has been saved in /Users/name/.ssh/id_dsa.
Your public key has been saved in /Users/name/.ssh/id_dsa.pub.
The key fingerprint is:
e2:bd:40:ce:fc:5c:4c:6c:15:cf:1c:e4:76:09:85:91 [email protected]

これで、ローカルにDSA方式で暗号化された公開鍵(id_dsa.pub)と秘密鍵(id_dsa)が作成されたと思います。

次に、リモートサーバへログインして ~/.ssh/authorized_keys ファイルを作成します。

$ cd
$ mkdir -m 700 .ssh
$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys

ローカルにある公開鍵(id_dsa.pub)をリモートサーバの ~/.ssh/ へコピーします。公開鍵(id_dsa.pub)の内容をauthorized_keysへ追記します。

$ cd .ssh/
$ cat id_dsa.pub >> authorized_keys

これで作業は終了となります。試しに、ターミナルでローカルからリモート先へsshで接続してみましょう。

$ ssh [email protected]

接続に成功すると、パスフレーズの入力を求めるダイアログが表示されるので[キーチェインへ登録]にチェックを入れてログインしましょう。次回からは、パスフレーズの入力を求めるダイアログが表示されずにログインできるようになります。

次にssh_configの設定を行い、Codaでも秘密鍵を使えるようにしてみます。

$ touch ~/.ssh/config

configファイルを作成したら

Host sakura
Hostname name.sakura.ne.jp
User name
IdentityFile ~/.ssh/id_dsa

などと書き入れておしまいです。

コメントを残す