サーバーに入る設定をしよう
サーバーに入る
チーム画面に行くと、サーバー情報があると思います。
ターミナルを開いて、sshコマンドを使ってサーバーに入ってみましょう。
ssh ユーザーネーム@グローバルIPアドレスssh ユーザーネーム@グローバルIPアドレス上記のコマンドでサーバーに接続できます。
例えば、サーバー情報にグローバルIPアドレス: 54.168.169.193と書いてあったら、
ssh isucon@54.168.169.193ssh isucon@54.168.169.193と入力することでサーバーに接続できます。サーバーに接続すると、パスワードを求められるので、サーバー情報に書いてあるパスワードをコピペで入力しましょう。 以下の様にユーザーネームが
isuconになり、サーバーに入れたと思います。 サーバーから抜けるには、
exitコマンドを使います。
秘密鍵と公開鍵の作り方
以下の「パスワードを入力しなくても接続できるようにする」と「ssh isucon1で接続できるようにする」には、秘密鍵と公開鍵が必要です。必須では無いのですが、凄く楽になるのでやりましょう。
秘密鍵と公開鍵を作成するには、ssh-keygenコマンドを使います。以下のコマンドを実行することで、秘密鍵と公開鍵が作成されます。以下のコマンドは、自分のPC上で実行してください。
mkdir ~/.ssh && chmod 700 ~/.ssh/ # ~/.ssh というディレクトリを作成
cd ~/.ssh
ssh-keygen -t ed25519 && chmod 600 ~/.ssh/id_ed25519 # 入力を複数回求められるが、全部何も入力せずにEnterで良い
ls && cat id_ed25519.pubmkdir ~/.ssh && chmod 700 ~/.ssh/ # ~/.ssh というディレクトリを作成
cd ~/.ssh
ssh-keygen -t ed25519 && chmod 600 ~/.ssh/id_ed25519 # 入力を複数回求められるが、全部何も入力せずにEnterで良い
ls && cat id_ed25519.pubid_ed25519が秘密鍵、id_ed25519.pubが公開鍵です。
秘密鍵は絶対に公開しないようにしましょう。 公開鍵は公開しても大丈夫です。
パスワードを入力しなくても接続できるようにする(ちょっと発展)
接続する際に、毎回パスワードを入力するのは面倒ですよね。実際ISUCONでは何度もサーバーに入ることが多いです。
そこで、公開鍵認証を使って、パスワードを入力しなくても接続できるようにしましょう。 サーバーは.ssh/authorized_keysにある公開鍵に対応する秘密鍵を持っているユーザーに、接続を許可します。一般的に、サーバーに接続をする際は、ほとんどがこの公開鍵認証です。
ここでは、例として@pikachuの公開鍵ssh-ed25519 AAAAC(省略)K+poiを追加してみます。自分で実行するときは、自分の公開鍵に置き換えてください。
以下のコマンドはサーバーで実行してください。
cd ~ && mkdir ~/.ssh && chmod 744 ~/.ssh
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO3aFsxQ60hI/ZFy5vJ+N6C0ONFBkfoQXz2PuTMK+poi" >> .ssh/authorized_keyscd ~ && mkdir ~/.ssh && chmod 744 ~/.ssh
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO3aFsxQ60hI/ZFy5vJ+N6C0ONFBkfoQXz2PuTMK+poi" >> .ssh/authorized_keysこれで、ssh isucon@xx.xxx.xxx.xxxでパスワードを入力せずに接続できるようになりました。
ssh isucon1で接続できるようにする(ちょっと発展)
いちいちisucon@xx.xxx.xxx.xxxと入力するのもめんどくさいですよね。
なので、ssh isucon1で接続できるようにしようと思います。なぜこの名前かというと、isucon3で3台目のサーバーに接続という風な運用にしたいからです。~/.sshに、configというファイルを作成し、そのファイルに以下をテキストとして追加します。
Host isucon1
HostName xx.xxx.xxx.xxx # ここにグローバルIPアドレスを書く
IdentityFile ~/.ssh/id_ed25519 # ここに秘密鍵のパスを書く
User isucon # ここにユーザーネームを書くHost isucon1
HostName xx.xxx.xxx.xxx # ここにグローバルIPアドレスを書く
IdentityFile ~/.ssh/id_ed25519 # ここに秘密鍵のパスを書く
User isucon # ここにユーザーネームを書くこれで、ssh isucon1ですぐに接続できるようになりました!
パっとファイルにテキストとして追加するコマンド
cat >> ~/.ssh/config <<EOL
Host isucon1
HostName xx.xxx.xxx.xxx
IdentityFile ~/.ssh/id_ed25519
User isucon
EOLcat >> ~/.ssh/config <<EOL
Host isucon1
HostName xx.xxx.xxx.xxx
IdentityFile ~/.ssh/id_ed25519
User isucon
EOL