Create: 2012/06/03
LastUpdate: 2012/11/08
企業などでEC2インスタンスを利用する場合、ファイヤーウォールに阻まれて、社内からは、直接、SSH接続できない場合があります。
そんな場合でも、HTTPプロキシサーバがあれば、プロキシ経由でSSH接続できる場合があります。
以下は、AmazonLinuxをインストールしたEC2インスタンスにHTTPプロキシ経由で接続する手順のメモです。
ここで紹介する方法は、以下の3パターンあります。
- ブラウザで AmazonManagementConsole を使用する場合
- Linuxのターミナルを使用する場合
- WindowsのPuTTYを使用する場合
[プロキシサーバ]
- IPアドレス:192.168.1.82
- ポート:8080
- ユーザ:canopus
- パスワード:password
- 特記事項: CONNECTの使用許可があること
1.ブラウザで AmazonManagementConsole を使用する場合
ブラウザで AmazonManagementConsole を使用して、プロキシサーバ経由でSSH接続することができます。
まず、下図の画面で、接続したいEC2インスタンスを右クリックして、メニューから[Connect]を選択します。
下図の画面が表示されたら、[Private key path]に存在しないファイルを指定して、[Launch SSH Client]ボタンをクリックします。
ここではプロキシの設定ができないので、とりあえず、SSHクライアントを起動して、そこでプロキシの設定をします。
下図のようにSSHクライアントが起動します。
1回目の接続では、接続先のホストを、既知のホストとして登録するか聞かれるので [Yes]ボタンをクリックして登録します。
[Private key path] に存在しないファイルを指定したので、下図のようなエラーが表示されます。
[了解]ボタンをクリックします。
下図のメニューで、[Connect]を選択します。
下図の画面が表示されたら、[Identity]に正しいキーペア(秘密鍵)を指定します。
[Proxy]タブをクリックします。
プロキシの情報を入力して、[Connect]ボタンをクリックします。
下図の画面が表示されたら、ENTERキーを押します。
下図のように表示が変わったら、ENTERキーを押します。
下図のように表示されたらSSH接続完了です。
PuTTY や TeraTermのようなターミナルとして使用できます。
2.Linuxのターミナルを使用する場合
Linuxマシンのターミナルからプロキシサーバ経由でEC2インスタンスにSSH接続することができます。
以下のサイトを参考にしました。
ここでは、クライアントに CentOS6.3 を使用してます。
まず、以下のようにして rpmforge から connect をインストールします。
# yum --enablerepo=rpmforge install connect次に、sshクライアントの設定をします。
ユーザのホームディレクトリの ~/.ssh/config を以下のようにします。
これで、接続先のホスト名が "amazonaws.com" を含む場合は、プロキシサーバを使用するようになります。
Host *.amazonaws.com ProxyCommand connect -H canopus@192.168.1.82:8080 %h %p設定は、以上で終わりです。
実際に ssh コマンドでEC2インスタンスに接続してみます。接続先が AmazonLinux なので ec2-userでログインします。
# ssh -i ./mykey.pem -l ec2-user ec2-54-248-149-19.ap-northeast-1.compute.amazonaws.com Enter proxy authentication password for canopus@192.168.1.82: password The authenticity of host 'ec2-54-248-149-19.ap-northeast-1.compute.amazonaws.com (<no hostip for proxy command>)' can't be established. RSA key fingerprint is 36:d3:07:73:21:3b:2b:95:55:54:61:c8:87:4d:fb:b4. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'ec2-54-248-149-19.ap-northeast-1.compute.amazonaws.com' (RSA) to the list of known hosts. Last login: Wed Nov 7 15:53:25 2012 from example.com __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2012.09-release-notes/ There are 3 security update(s) out of 27 total update(s) available Run "sudo yum update" to apply all updates. [ec2-user@ip-10-132-67-154 ~]$エラーになる場合は、以下を参考にしてください。
- 接続先のホスト名にIPアドレスを指定すると、プロキシサーバを使用しないので接続できない。パブリックDNS名で接続する。
- パスワードの入力を求められますが、プロキシサーバのユーザのパスワードを入力します。
上記の場合は 赤字の password が、プロキシサーバのユーザ(canopus)のパスワードです。 - キーペアの秘密鍵は、パーミションを400にします。パーミションを間違うとエラーになって接続できません。
- ssh コマンドがない場合は、"yum install openssh-clients" でインストールする。
3.WindowsでPuTTYを使用する場合
Windowsマシンにインストールした、PuTTY を使用して、プロキシサーバを経由してEC2インスタンスにSSH接続することができます。
まず、キーペア(秘密鍵)を PuTTY 用に変換します。手順については「 [AWS] PuTTY で EC2インスタンス(Linux) にログインする」を参照してください。
PuTTY を起動して、下図の画面が表示されたら、接続先のホスト名を入力します。
次に、下図の画面で、プロキシサーバの情報を入力します。
次に、下図の画面で PuTTY 用に変換したキーペア(秘密鍵)を入力します。
[開く]ボタンをクリックすると、下図のメッセージが表示されるので[はい]ボタンをクリックします。
EC2インスタンスのユーザを入力してログインします。
下図のように表示されればSSH接続OKです。