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