Linux の SSH 無密登入の設定方法
リモートからLinuxにSSHで秘密鍵認証でログインするためには、以下の手順を行います。
- クライアント側に公開鍵と秘密鍵を作成する。ssh-keygen コマンドを使用できます。ターミナルに次のコマンドを入力します。
ssh-keygen -t rsa
プロンプトに従って、公開鍵と秘密鍵を保存するパスを選択し、パスワードを設定してください(空にしても構いません)。
- ターミナルで次のコマンドを入力します。ssh-copy-id コマンドによって実施できます。サーバー上の~/.ssh/authorized_keysファイルにパブリックキーをコピーします。
ssh-copy-id username@server_ip
この中で、username はサーバー上のユーザー名で、server_ip はサーバーの IP アドレスです。
- サーバーのパスワードを入力し、公開鍵をサーバーにコピーする。
- 上記の手順でパスワードなしでのsshログインが可能になりました。
サーバーの ~/.ssh ディレクトリのパーミッションが不正な場合、秘密鍵認証によるログインに失敗する可能性があるので注意。サーバーの ~/.ssh ディレクトリのパーミッションを 700、~/.ssh/authorized_keys ファイルのパーミッションを 600 に設定しておきましょう。
さらに、複数のサーバーに鍵なしアクセスでログインしたい場合は、上記の手順を繰り返して公開鍵を各サーバーにコピーしてください。