web-dev-qa-db-ja.com

Amazon EC2インスタンスのドメイン名(またはIPアドレス)に簡単にアクセスするための/ etc / hostsの変更

以前、ローカル(Mac OS x 10.6)/ etc/hostsファイルにサーバーのパブリックIPを次のように追加しました。

123.123.123.123 myServer

サーバーのIPアドレスを覚えていなくてもmyServerにsshできるようにして、次のように(shh公開鍵を使用して)正常に動作しました。

ssh myServer1

しかし、Amazon EC2インスタンスでは、提供された長いパブリックDNSアドレスを使用して同じことを実行しようとし、/ etc/hostsに次のように追加しました。

ec2-23-23-23-23.compute-1.amazonaws.com myServer2 

しかし、sshしようとするとmyServer2は「ホスト名を解決できない」と言っています

これが機能しない理由はありますか?どうすればこれを機能させることができますか?

使用したい完全なコマンドは次のとおりです。

ssh -i key.pem [email protected] 

そして、私はこのようなものであるかもしれないショートカットを作成しようとしています:

ssh -l username myServer2 or ssh -i key.pem -l username myServer2

何か案は?

更新:代わりにエイリアスを使用した方が簡単です:

これを.bash_profile内に追加(MAC OS x)

alias myServer='ssh -i /path/to/key.pem [email protected]' 

(ターミナルを再度開いたり開いたりする必要がある、またはソース〜/ .bash_profileを使用する)次に、コマンドラインでmyServerを使用するだけでssh $ myServer

5
venix

hostsファイルを編集する代わりに、 SSHクライアント設定 についてお読みください。

~/.ssh/configにホストエイリアスを作成できます。例えば:

Host myServer2
     HostName ec2-23-23-23-23.compute-1.amazonaws.com
     UserName username

SSHのみを使用している場合、これは正常に機能します。他のサービスにアクセスする必要がある場合は、DNSを設定するか、SSHでポート転送を使用します(-Lを使用)。

6
James O'Gorman

/etc/hostsの行の形式は

<ip address>  <hostname> [<alias> ...]

そのため、最初のフィールドとしてIPアドレスを指定する必要があります。これが、EC2ホスト名を使用する試みが機能しなかった理由です。

(DNS解決が機能している場合)名前はDNSルックアップによって解決されるため、とにかくこれを行う必要はありません。

1
Flup