公開鍵のid_rsa.pubだけをサーバーに転送しておいて、秘密鍵はローカル保存。
2つのキーを合わせることで認証をするシステム
Cygwinを使って、apt-cygで鍵を発行する手順
Cygwinを立ち上げて、以下のコマンドでGitHubからスクリプトをダウンロードできます。
wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
lsでゲットできたかを確認
$ ls
$ apt-cyg ←lsをして設置されていればOK
フォルダに置かれている事が確認できた。
実行権限(パーミッション)をつけてPATHの通っている場所に置きます。
chmod 755 apt-cyg
mv apt-cyg /usr/local/bin/
これでapt-cygが利用できるようになります。
例えばvimをインストールしたい場合は以下のコマンドでできます
apt-cyg install vim
国内のリポジトリから更新するようにするには
apt-cyg -m ftp://ftp.iij.ad.jp/pub/cygwin/ update
apt-cygを取り込んだので、ようやくOpenSSHパッケージ
1. OpenSSH パッケージのインストール
OpenSSH がインストールされていなければ、Cygwin の setup.exe 等でインストールする。
(当方は apt-cyg 導入済みなので apt-cyg コマンドでインストールした)
$ apt-cyg install openssh
2. 鍵ペア(公開・秘密)の生成
以下のコマンドで公開鍵・秘密鍵を生成する。
$ ssh-keygen
作成先・ファイル名を指定しなければ、/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:
サーバー側に公開鍵をリネームして配置してからパーミッション600に直して設置完了
$ mv .ssh/id_rsa.pub .ssh/authorized_keys ←ファイル名の変更
$ chmod 600 ~/.ssh/authorized_keys
$ ls .ssh ←一応、設置がうまくいってるか確認。
Cygwin側に配置した秘密鍵のパーミッションも変更
$ chmod 644 /home/hoge/.ssh/id_rsa
$ ssh -i .ssh/id_rsa hoge@<ホスト名 or サーバIPアドレス>
パーミッションでエラーが出現!644のパーミッションは間違い。
$ ssh -i .ssh/id_rsa hoge@IP
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key ".ssh/id_rsa": bad permissions
パーミッション600で通りました。お疲れ様でした。
$ chmod 0600 ~/.ssh/id_rsa
----------------------------------------------------------------------
TeraTerm編
Teratermをインストールしているならば、Teratermを使って公開鍵を発行して、それをCygwinのフォルダに設置した方が早いのではないかと思いましたが、Cygwinで完結させた方が間違いが少ないと思って、そうしています。
Teratermを使って公開鍵「id_rsa.pub」秘密鍵「id_rsa」を発行
http://www.adminweb.jp/web-service/ssh/index5.html
Teratermの場合には、秘密鍵をフォルダからアップロードする形にしていますが、どう見てもパーミッションなどが甘くなるので、セキュリティ度合いが低くなる事は間違いない気がします。