Cygwin - 公開鍵認証 SSH クライアントとして使用!
Updated:
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 コマンドでインストールした)
$ apt-cyg install openssh
2. 鍵ペア(公開・秘密)の生成
以下のコマンドで公開鍵・秘密鍵を生成する。 作成先・ファイル名を指定しなければ、/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. サーバ側作業
以下は対象ユーザで作業する。 ・公開鍵格納ディレクトリ作成
$ mkdir -p ~/.ssh
・公開鍵格納ディレクトリのパーミッションを変更
$ chmod 700 ~/.ssh
ここで、対象ユーザの “.ssh” ディレクトリに cygwin 側で作成した “id_rsa.pub” を “authorized_keys” にリネームして配置する。 当方は既に稼動中のファイルサーバを介してアップロードした。 (サーバ側への公開鍵のアップロードは、FTP を使用したり、フロッピディスクやUSB メモリを使用したり、ターミナルでファイルの内容をカット&ペーストしたりと、色々方法はあります) ・”authorized_keys” のパーミッションを変更
$ chmod 600 ~/.ssh/authorized_keys
・サーバでの作業終了
$ exit
4. 秘密鍵のパーミッション変更
Cygwin 側で、作成した秘密鍵 id_rsa のパーミッションを変更する
$ chmod 644 /home/hoge/.ssh/id_rsa
5. 接続テスト
以下のようにして、Cygwin 側からサーバへ接続を試みる。 接続に成功すれば、プロンプトがサーバのものに変わる。
$ ssh -i .ssh/id_rsa <ホスト名 or サーバIPアドレス>
Cygwin のユーザ名とサーバ側のユーザ名が異なるなら、ユーザ名も指定する。
$ ssh -i .ssh/id_rsa hoge@<ホスト名 or サーバIPアドレス>
エラーで接続できないような場合は、-v
オプションを付加すれば、デバッグメッセージが確認できる。
その他、ヘルプは ssh --help
で。
その他
当方は、今まで端末エミュレータとして、Poderosa を使用していました。 公開鍵・秘密鍵も Poderosa で作成したものを使用していました。 この公開鍵・秘密鍵をそのまま Cygwin からの SSH 接続にも流用しようとしましたが、書式が違うためか使用できませんでした。 また、逆に Cygwin で作成した公開鍵・秘密鍵を Poderosa で流用することも不可能のようです。
当方、普段 Cygwin を SSH クライアントとして使用することはありません。 しかし、Linux や BSD 等の端末エミュレータでも使用できるので、近い将来目論んでいることに大いに役立ちそうです。
以上。
Comments