mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Cygwin - 公開鍵認証 SSH クライアントとして使用!

[ pc_tips, サーバ構築 ] [ CentOS, Cygwin, Linux, Unix ]

こんばんは。

Cygwin から「秘密鍵・公開鍵」を使用して Linux サーバに SSH 接続する方法についての記録です。

当方、普段は Windows 上では端末エミュレータとして Poderosa を使用していますが、何かあった時のために Cygwin でも SSH 接続できるように記録しておいた次第です。

また、この方法は Cygwin のみならず、Linux や BSD 等の端末エミュレータでも使用できる方法ですので、後学のためになるかと。

作業記録

0. 前提条件

  • SSH クライアントとして Cygwin 1.7.15 を想定。
  • サーバは CentOS 6.3 (32bit) で、既に OpenSSH サーバが導入済みであると想定。

1. OpenSSH パッケージのインストール

OpenSSH がインストールされていなければ、Cygwin の setup.exe 等でインストールする。 (当方は apt-cyg 導入済みなので apt-cyg コマンドでインストールした)

1
$ apt-cyg install openssh

2. 鍵ペア(公開・秘密)の生成

以下のコマンドで公開鍵・秘密鍵を生成する。 作成先・ファイル名を指定しなければ、/home/(ユーザ名)/.ssh/ に id_rsa, id_rsa.pub が作成される。 途中、鍵用のパスワードも入力する。

1
2
3
4
5
6
7
8
9
10
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hoge/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hoge/.ssh/id_rsa.
Your public key has been saved in /home/hoge/.ssh/id_rsa.pub.
The key fingerprint is:

  :

3. サーバ側作業

以下は対象ユーザで作業する。 ・公開鍵格納ディレクトリ作成

1
$ mkdir -p ~/.ssh

・公開鍵格納ディレクトリのパーミッションを変更

1
$ chmod 700 ~/.ssh

ここで、対象ユーザの “.ssh” ディレクトリに cygwin 側で作成した “id_rsa.pub” を “authorized_keys” にリネームして配置する。 当方は既に稼動中のファイルサーバを介してアップロードした。 (サーバ側への公開鍵のアップロードは、FTP を使用したり、フロッピディスクやUSB メモリを使用したり、ターミナルでファイルの内容をカット&ペーストしたりと、色々方法はあります) ・"authorized_keys" のパーミッションを変更

1
$ chmod 600 ~/.ssh/authorized_keys

・サーバでの作業終了

1
$ exit

4. 秘密鍵のパーミッション変更

Cygwin 側で、作成した秘密鍵 id_rsa のパーミッションを変更する

1
$ chmod 644 /home/hoge/.ssh/id_rsa

5. 接続テスト

以下のようにして、Cygwin 側からサーバへ接続を試みる。 接続に成功すれば、プロンプトがサーバのものに変わる。

1
$ ssh -i .ssh/id_rsa <ホスト名 or サーバIPアドレス>

Cygwin のユーザ名とサーバ側のユーザ名が異なるなら、ユーザ名も指定する。

1
$ ssh -i .ssh/id_rsa hoge@<ホスト名 or サーバIPアドレス>

エラーで接続できないような場合は、-v オプションを付加すれば、デバッグメッセージが確認できる。 その他、ヘルプは ssh --help で。

その他

当方は、今まで端末エミュレータとして、Poderosa を使用していました。 公開鍵・秘密鍵も Poderosa で作成したものを使用していました。 この公開鍵・秘密鍵をそのまま Cygwin からの SSH 接続にも流用しようとしましたが、書式が違うためか使用できませんでした。 また、逆に Cygwin で作成した公開鍵・秘密鍵を Poderosa で流用することも不可能のようです。


当方、普段 Cygwin を SSH クライアントとして使用することはありません。 しかし、Linux や BSD 等の端末エミュレータでも使用できるので、近い将来目論んでいることに大いに役立ちそうです。

以上。

Comments