以前、ローカル(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
hosts
ファイルを編集する代わりに、 SSHクライアント設定 についてお読みください。
~/.ssh/config
にホストエイリアスを作成できます。例えば:
Host myServer2
HostName ec2-23-23-23-23.compute-1.amazonaws.com
UserName username
SSHのみを使用している場合、これは正常に機能します。他のサービスにアクセスする必要がある場合は、DNSを設定するか、SSHでポート転送を使用します(-L
を使用)。
/etc/hosts
の行の形式は
<ip address> <hostname> [<alias> ...]
そのため、最初のフィールドとしてIPアドレスを指定する必要があります。これが、EC2ホスト名を使用する試みが機能しなかった理由です。
(DNS解決が機能している場合)名前はDNSルックアップによって解決されるため、とにかくこれを行う必要はありません。