このドキュメントは VaraTerm 2.1.0 をベースに書かれています。
Terminal Emulator VaraTerm からダウンロードしてインストールします。インストールは難しいことがなにも ないので省略します。
だけです(省略しすぎ?)
ツール->SSH鍵生成ウィザードを起動します。 ここではLAN内のホストにアクセスするためにパスフレーズを入力しなくても ログオンできるようにするためにはパスフレーズを空白にしています。
| アルゴリズム | DSA |
| ビット数 | 1024 |
| パスフレーズ | (今回は空白) |
「パスフレーズを空にして鍵を生成しますか?」に「はい」を押します
「次へ」を押します
上記のウィンドウが開くので適当にマウスを動かして、「次へ」が押せるように なったら押します。
「秘密鍵を名前をつけて保存」を押して保存します、 「C:\Program Files\Terminal Emulator VaraTerm\(Windowsのユーザ名)」に 「id_dsa.ppk」というファイル名で保存します。
同様に「OpenSSH形式で公開鍵を名前をつけて保存」で公開鍵を保存します。 「C:\Program Files\Terminal Emulator VaraTerm\(Windowsのユーザ名)」に 「id_dsa.pub」というファイル名で保存します。
公開鍵ファイル id_dsa.pub を FreeBSD に転送します。ホームディレクトリを~だと すると「~/.ssh」に「authorized_keys2」というファイル名にします。「~/.ssh」がない 場合は作成します。ディレクトリのパーミッションは他の人に消されないように念のため、 700にしておきましょう
drwx------ 1 name group 1190 6 2 21:00 .ssh
公開鍵ファイルは FTP 転送やメール添付など安全でない方法を介して転送してもか まいません。ただし FTP はパスワードが平文で流れるためインターネットを経由 して公開鍵ファイルを転送した後は ssh ログインができるようになってすぐに FreeBSD ユーザ のパスワードを変更することを強くお勧めします。 (SSHのパスフレーズではなく) FreeBSD ユーザのパスワードを変更しても公開鍵ファイルを再作成する必要はありません。
他の人に壊されないように念のため、authorized_keys2 のパーミッションは600 にしておいてください。
-rw------- 1 name group 1190 6 2 21:09 authorized_keys2
例1) 自宅の FreeBSD に会社からアクセスする場合
自宅 会社
Windows ----------- FreeBSD ===== インターネット ===== Windows
公開鍵をFTP転送 --> <------------------------- SSH ログイン
秘密鍵(id_dsa.ppk)はFD/USBストレージで持っていくこと!
例2) 会社の FreeBSD に自宅からアクセスする場合
自宅 会社
Windows ===== インターネット ===== FreeBSD ---- Windows
SSH ログイン --------------------> <--- 公開鍵をFTP転送
秘密鍵(id_dsa.ppk)はFD/USBストレージで持って帰ること!
改行コードを変更しなくても接続に問題はありませんが、後で鍵を追加するときに改行 コードがばらばらだと見た目が悪いです。いまのところそれ以外は趣味の問題だとおもって ます(なにか問題があるのでしたらご連絡ください)
VaraTerm で作成した公開鍵ファイルは改行コードが CR+LF になっていますのでホス トに転送するときに LF にしておきましょう。FTP 転送するなら ASCII モードで転 送すると改行コードが変更されます。メールで添付するならあらかじめ Windows で改行コードを変更しておきましょう。秀丸エディタなら「名前を付けて保存」 で保存するファイルの改行コードを選ぶことができます。また FreeBSD にログイン後に vi を使用して変更することもできます。
秀丸エディタを使用 1. id_dsa.pub をあける 2. ファイル->名前を付けて保存から改行コードをLFにして保存
vi を使用 $ vi id_dsa.pub :%s/ Ctrl+v Ctrl+M // と入力します 表示が以下のようになります。 :%s/^M// ^M (CR) が削除されます
VaraTerm から「新規接続」で接続します。
| ホスト | (接続先) |
| プロトコル | SSH2 |
| ポート | SSH(22) |
| ユーザ名 | (FreeBSDのユーザ名) |
| 認証方法 | 公開鍵 |
| パスフレーズ | (今回は空白) |
| 鍵ファイル | C:\Program Files\Terminal Emulator VaraTerm\(Windowsのユーザ名)\id_dsa.ppk |
| ログの種別 | なし |
| ログの保存先 | (空白) |
| エンコーディング | shift-jis |
| ローカルエコー | しない |
| 改行の送信 | CR |
| 種類 | vt100 |
以下のマクロをたとえば login.js として C:\Program Files\Terminal Emulator VaraTerm\(Windowsのユーザ名) に 作成します。今回のようにパスフレーズがない場合は password を "" にしておきます。 マクロに書いてしまうとパスフレーズが暗号化されないので注意しましょう。
import VaraTerm;
import VaraTerm.Macro;
import System.Drawing;
var env = new Environment();
/*
* Please modify the following values before you run this macro!
*/
var host = "(ホスト名)";
var account = "(FreeBDのユーザ名)";
var password = "";
var encoding = "SHIFT_JIS";
var prikey = "(Windowsのユーザ名)\\id_dsa.ppk";
sshlogin();
function sshlogin() {
var param = new SSHTerminalParam(ConnectionMethod.SSH2, host, account, password);
param.AuthType = AuthType.PublicKey;
param.Encoding = encoding;
param.IdentityFile = prikey;
param.TerminalType = TerminalType.XTerm;
var c = env.Connections.Open(param);
}
「ツール->マクロ->環境設定」をあけます
| タイトル | login (任意) |
| ファイル | C:\Program Files\Terminal Emulator VaraTerm\(Windowsのユーザ名)\login.js |
で「OK」を押します
「ツール->マクロ->login」を選択します
「ファイル->接続へのショートカットを保存」でショートカットファイルを作成します。
VaraTermが起動された状態でこのショートカットファイルをダブルクリック するとダイアログがあくので「OK」を押せば接続します。鍵ペアにパスフレーズをつけ ていたなら入力を要求されますのでパスフレーズを入力してください。
すでに PuTTY や WinSCP を使用していた場合は FreeBSD 側に authorized_keys2 が作成 されていたとおもいます。VaraTerm は PuTTY で作成した秘密鍵を読むことができません ので VaraTerm で鍵ペアを作成することは必須です。
ちなみに無理に PuTTY 形式の秘密鍵を指定して VaraTerm で接続しようとすると以下のよ うな「Wrong key format」というエラーになります。
上記の「公開鍵の転送」で述べたように作成した公開鍵ファイル(OpenSSH形式)を authorized_key2 ファイルとして転送してしまうと VaraTerm の公開鍵のみになっ てしまい、PuTTY や WinSCP を使用して接続することができなくなってしまいます。
authorized_key2 には複数の公開鍵を登録することが可能ですのでファイルを置き 換えてしまうのではなく既存の authorized_key2 に VaraTerm の公開鍵を追加する ことで VaraTerm からだけでなく、WinSCP からでも PuTTY からでも接続すること ができるようになります。
authorized_key2 はテキストファイルですのでテキストエディタ(vi等)を使って単純に 既存の authorized_key2 に VaraTerm の OpenSSH 形式公開鍵を追加することも できますが、ミスもありえるのでファイルにしておいて cat (や copy) コマンドで 追加することをお勧めします。
先に PuTTY や WinSCP で作成した公開鍵が authorized_keys2 にあり、VaraTerm の公開鍵 を id_dsa.pub というファイル名(任意です)で FreeBSD に FTP 転送します。
FreeBSDで操作する場合
cp -p authorized_keys2 authorized_keys2.bk (バックアップのため) cat id_dsa.pub >> authorized_keys2 (>> で追記)
Windowsで操作する場合
copy authorized_keys2 authorized_keys2.bk (バックアップのため) copy authorized_keys2.bk+id_dsa.pub authorized_keys2 (+ で結合) (この後で FreeBSD へ authorized_keys2として転送)
以上で authorized_keys2 に VaraTerm の公開鍵も登録されましたので VaraTerm からでも、 WinSCP からでも PuTTY からでも接続することができるようになります。
当サイトへのリンクはご自由にどうぞ。このページへ直接リンクしていただいてもかまいません。 ご連絡いただければこちらからもリンクさせていただきます。
連絡先: tanaka_yuji@nna.so-net.ne.jp (SPAM 防止のために@を全角にしてあります。 実際には半角で入力してください)