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

Updated:


※この記事は12年以上前に投稿されたもので、情報が古い可能性があります。

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

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

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

作業記録Permalink

0. 前提条件Permalink

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

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

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

$ apt-cyg install openssh

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

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

$ 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. サーバ側作業Permalink

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

$ mkdir -p ~/.ssh

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

$ chmod 700 ~/.ssh

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

$ chmod 600 ~/.ssh/authorized_keys

・サーバでの作業終了

$ exit

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

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

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

5. 接続テストPermalink

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

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

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

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

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

その他Permalink

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


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

以上。





 

Sponsored Link

 

Comments