puttyで公開鍵暗号を使ってユーザー名・パスワードを省略してログインする設定をした。
開発環境のsshするのに、毎回ユーザー名とパスワード入れるのも面倒だったので、鍵作りました。開発環境とはいえパスワード認証でsshするのもあまり良くないし。
鍵生成
$ pwd /home/myuser $ mkdir .ssh $ chmod go-r .ssh/ $ cd .ssh/ $ ssh-keygen -b 2048 -t rsa -N '' -f work-rsa Generating public/private rsa key pair. Your identification has been saved in work-rsa. Your public key has been saved in work-rsa.pub. The key fingerprint is: 34:35:48:40:60:98:29:6d:9b:20:41:7d:be:9c:a5:0d myuser@localhost $ ls work-rsa* work-rsa work-rsa.pub $ cat work-rsa.pub > authorized_keys $ chmod go-r authorized_keys #鍵をダウンロード $ rm work-rsa work-rsa.pub $ ls authorized_keys $ pwd /home/myuser/.ssh
-t | 暗号方式の指定RSAとDSAがあるけど、DSAは鍵長が1024ビット固定で短すぎるので今のところRSAがスタンダード。 |
-b | 鍵長を指定する。後で調べたらRSAなら2048がデフォルト値だったみたい。 |
-N | パスフレーズ。指定しなければ対話型で聞かれる。-N '' にするとパスフレーズ無しになる。 |
-f | 生成する鍵のファイル名。指定しなければid_rsa とid_rsa.pub が生成されます。 |
本当は、手元のクライアントで鍵生成するべきだけど、Windowsでやるの面倒だったので、開発環境で作ってからSCPでダウンロードしました。まぁ開発環境でしか使わない鍵だし。
puttyの設定
まず、putty付属のputtygen.extで秘密鍵を読み込んでから、秘密鍵の保存をします。puttyは鍵の形式が異なるので、これでputty用の秘密鍵*1になります。
接続 > SSH > 認証 > 認証パラメータ > 認証のためのプライベートキーファイル(K)
にさっき保存した.ppkファイルを指定します。
接続 > データ > ログインの詳細 > 自動ログインのユーザー名(U)
にユーザー名を入力しておくことで、接続時の入力を省略できます。パスフレーズ無しなので、これでputtyを起動してセッションを選ぶだけで、すぐに開発環境にログインできます。
関係無いけどLinux繋がりのついで
ホワイトスペースをユーザ名 or グループ名に含む場合のchown
$ chown myuser:domain\ users foo.txt
たぶんActiveDirectoryと繋がってるとかだと思いますがdomain users
というスペースが入ったグループでした。クォート系で囲むとかじゃなく、バックスラッシュでエスケープでした。
*1:.ppkファイル