概要
SSHする際、基本的なコマンドの構造は以下の通りになると思う。
ここでは、Windows環境をもとに実行できるSSHエージェントを利用している。
ユーザー名の省略まではmacでもできるが、パスワード省略は別のSSHエージェントが必要。
ssh -i xxx.rsa user@192.160.1.1
その後、パスワードを入力
この際、以下の設定を入れていくことで、入力箇所を省略することが可能になる。
ユーザー名の省略
以下のコンフィグを確認。ない場合は作成する。
/Users/ユーザ名(カレントディレクトリ)/.ssh/config
基本的なパラメータは以下の通り。
- Host
- sshで繋ぎたいサイト名
- Hostname
- 接続先IPもしくはドメイン名
- User
- ログインユーザネーム
- IdentifyFile
- 接続先に用いる鍵ファイル
以下のような形で指定できる。
Host remote_pc
Hostname 10.0.0.1
User user1
これを実施すると、
ssh remote_pc
で、ssh user1@10.0.0.1
コマンドと同様のコマンドになる。
また、ワイルドカードを設定することができる。
Host *-group1
User user2
Hostname 10.0.0.2
#共通の設定
Host *
User user1
その時にsshを実行すると、以下のように省略できる。
ssh 10.0.0.1
ssh sample-group1
ssh user1@10.0.0.1
ssh user2@10.0.0.2
このように、user1
,user2
が省略できる。
普段指定している鍵がある場合、それも今までssh -i ~~
としていた部分を省略できる。
パスワードの省略
パスワードの省略には、SSHAgentを利用することで実現が可能である。
これによるメリットは以下の通り。
- 秘密鍵を登録・保持して常駐させる。
- エージェントを起動すると、SSH接続のたびに秘密鍵の指定はいらなくなる。
- SSHエージェント転送を用いれば、踏み台が必要なSSH接続にもエージェント鍵認証が可能
- scpなどで鍵ファイルを踏み台サーバに送る必要がなくなる。
- これは、SSHクライアントがエージェントに対して秘密鍵を問い合わせて利用しているため。
設定方法
以下のリンク先から、Puttyをインストールする。
自分のPCのbitに合わせた最新版を選択する。ここからは、日本語化されている独自のパッチなどもあり、使用しやすい。
なお、以下からもインストール可能。
展開すると、以下のように様々なツールがあるのを確認できる。
例えばPuttygenでは、ssh-kengen のように秘密鍵を生成する事ができる。
新規でSSH鍵生成する場合
Puttygenを起動し、パラメータがrsa/2048bitになっていることを確認した後
生成ボタンを押す。
この時、マウスを空白部分で動かす事でランダムシードを生成できるとのこと。
生成されたら、鍵につける名称と、パスフレーズを設定する。
パスフレーズは鍵の利用に際して必要になるものであり、ユーザーパスワードとは異なる。
基本的には空のパスフレーズにしない。
Actionから、秘密鍵・公開鍵をPC上に保存する。
公開下記を接続先のホストに設定する。
内容はここでは省略する。以下のような手順が役に立つ。
Pagentの利用
Pagentでは、複数の秘密鍵を読み込む事が可能である。
読み込む際、パスフレーズを求められる。Pageantで秘密鍵をロードするときに「パスフレーズを記憶する」をチェックしないようにすると良い。
秘密鍵を選択した後、パスフレーズを入力して、Pagentの起動が完了する。
その状態でTeratermであれば、Pagentの利用を選択すると、パスフレーズを省略する事が可能になる。