この記事では、Secure Shell(SSH)を使用してLinux®またはMacOS®Xを実行しているコンピューターからクラウドサーバーに接続する手順について説明します。また、SSHキーの生成とサーバーへの公開キーの追加についても説明します。
SSHは、クラウドサーバーとランシェルコマンドにアクセスするためのプロトコルです。 SSHキーを使用すると、パスワードを必要とせずに信頼できるコンピューターを識別し、サーバーと対話できます。
SSHはSecureSocketsLayer(SSL)で暗号化されているため、これらの通信を傍受して読み取ることは困難です。
注: この記事のコマンドの多くは、ローカルコンピューターで実行する必要があります。リストされているデフォルトのコマンドは、LinuxコマンドラインまたはMacOSXターミナル用です。 Windows®からSSH接続を確立するには、無料のプログラムPuTTYと同様のクライアントを使用できます。キーを生成するには、関連プログラムPuTTYGenを使用できます。
クラウドサーバーのインターネットプロトコル(IP)アドレスとパスワードを使用して、次のssh
を実行してログインします。 username@ipaddress
を使用したコマンド 引数として:
ssh [email protected]
接続先のアカウントのパスワードを入力するように求められます。
クラウドサーバーを再構築した場合、次のメッセージが表示される場合があります。
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
SSHのセキュリティ機能の1つは、クラウドサーバーにログインするときに、リモートホストがそれを識別する独自のキーを持っていることです。接続しようとすると、SSHクライアントは、サーバーのキーを、そのIPアドレスへの以前の接続から保存したキーと照合します。クラウドサーバーを構築した後、そのリモートホストキーが変更されるため、コンピューターは疑わしいアクティビティの可能性について警告します。
サーバーのセキュリティを確保するために、クラウドコントロールパネルのWebコンソールを使用して、サーバーの新しいキーを確認できます。なりすましが行われていないことが確実な場合は、その手順をスキップして、古いSSHのレコードを削除できます。次のようなホストキー:
ローカル コンピューターで、SSH known_hosts
を編集します クラウドサーバーのIPアドレスで始まる行をファイルして削除します。
注: nano
などの任意のエディターを使用します DebianまたはUbuntuオペレーティングシステムまたはvi
RPMまたはCENTOSサーバー。簡単にするために、この記事ではnano
のみを使用しています 。 vi
を使用する場合 、vi
に置き換えます nano
の場合 編集コマンドで。nano
の使用の詳細については 、see / support / how-to /modify-your-hosts-file/。
nano ~/.ssh/known_hosts
ローカルコンピュータでLinuxまたはMacOSXを使用していない場合は、 known_hostsの場所 ファイルが異なる場合があります。ファイルの場所については、OSを参照してください。 Windows上のPuTTYには、保存されたホストキーを置き換えるオプションがあります。
公開鍵と秘密鍵のペアを使用することで、クラウドサーバーへのSSHアクセスをブルートフォースパスワード攻撃から保護できます。公開鍵はサーバーに配置され、一致する秘密鍵はローカルコンピューターに配置されます。キーを使用した接続のみを受け入れるようにサーバーでSSHを構成すると、パスワードだけを使用してログインすることはできなくなります。接続するクライアントは、サーバーに公開鍵が登録されている秘密鍵を使用する必要があります。セキュリティの詳細については、Linuxサーバーのセキュリティのベストプラクティスを確認してください。
SSHキーペアを生成するには、次の手順を使用します。
-
メールアドレスをラベルとして使用して、次のコマンドを実行します。メールアドレスを
[email protected]
に置き換えます。 コマンドで。ssh-keygen -t rsa -C "[email protected]"
パブリックとプライベートのRSAキーペアが生成されていることを示すメッセージが表示されます。
プロンプトで、 Enterを押します キーを保存するデフォルトの場所またはenteraファイルを使用して、 Enterを押します。 。
-
キーペアのパスワードのセキュリティを強化する場合は、パスフレーズを入力して Enterを押します。 。キーペアでパスワードを使用したくない場合は、 Enterを押します。 設定せずに続行します。
キーペアが生成され、出力は次の例のようになります。
Your identification has been saved in /LocalFileLocation/id_rsa. Your public key has been saved in /LocalFileLocation/id_rsa.pub. The key fingerprint is: 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected]
-
必要に応じて、新しいキーをローカルの ssh-agentに追加します 接続するたびにその場所を指定しなくても、SSHがキーを検索できるようにするファイル:
ssh-add ~/.ssh/id_rsa
ssh-agentの代わりにSSH構成ショートカットを使用できます ショートカット構成の指示に従ってファイルを作成します この記事の後半のセクション。
作成する新しいクラウドサーバーにキーを簡単に追加するには、次の手順に従って公開キーをクラウドアカウントにアップロードします。
-
クラウドコントロールパネルにログインします。
-
上部のナビゲーションバーで、製品の選択> Rackspace Cloudをクリックします 。
-
サーバー>SSHキーを選択します 。
-
公開鍵の追加をクリックします 。
-
Work Laptopなどのキー名を入力します 、このキーの対象となるコンピューターを思い出させるため。
-
公開鍵を保存する地域を選択します。キーを複数のリージョンに保存するには、リージョンごとにこれらの手順を繰り返します。キーはサーバーと同じリージョンに存在する必要があります。
-
id_rsa.pubの内容を貼り付けます 公開鍵に作成したファイル 分野。ファイルの内容を取得するには、テキストエディタでファイルを開くか、次のコマンドを実行します。
cat ~/.ssh/id_rsa.pub
-
公開鍵の追加をクリックします 。
コントロールパネルを使用する代わりに手動でキーを追加する場合は、Linuxサーバーのセキュリティのベストプラクティスを確認し、次のコマンドを使用します。
ssh-copy-id -i ~/.ssh/id_rsa.pub {username}@{remotePublicIPAddress}
新しいクラウドサーバーを作成するときに、保存されているキーを新しいサーバーに追加できます。
-
サーバーの作成 ページで、詳細オプションを展開します セクション。
-
SSHキーから メニューで、リストからキーを選択します。
-
リストに保存されているキーが表示されない場合は、次のいずれかのアクションを実行できます。
- 新しいサーバーのリージョンを、SSHキーを保存したリージョンに切り替えます。
- 前のセクションの手順を繰り返します。クラウドアカウントに公開鍵を追加します 、新しいサーバーを作成するリージョンにキーを追加します。
クラウドコントロールパネルを使用して、既存のサーバーに公開鍵を追加することはできません。キーを手動で追加するには、次の手順に従います。
-
クラウドサーバーで、 .sshという名前のディレクトリを作成します SSHを使用して接続するユーザーのホームフォルダー内。
mkdir -p ~/.ssh
-
authorized_keysを作成または編集します 次のコマンドを使用して、公開鍵をファイルし、許可された鍵のリストに追加します。
nano ~/.ssh/authorized_keys
キーはすべて1行にあるため、キーが改行で壊れていないことを確認してください。 authorized_keysには複数のキーを含めることができます ファイル、1行に1つのキー。
-
次のコマンドを使用して、キーに正しい権限を設定します。
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
-
問題があり、権限の問題を修正する必要がある場合は、次のコマンドを実行します。
restorecon -R -v /root/.ssh
公開鍵をauthorized_keysに追加した後 、アカウントパスワードの代わりにキーペアを使用してSSH接続を確立できます。
次の手順を使用して、〜/ .ssh / configを作成して接続ショートカットを設定します。 ローカルコンピュータにファイルを保存し、サーバーとキーの詳細を追加します。
-
テキストエディタを使用して、次のテキストを〜/ .ssh / configに追加します ファイル、サーバー情報に一致するように値を変更します:
Host shortcutName HostName serverAddressOrIPAddress User remoteUsername IdentityFile /path/to/appropriate/ssh/rsa/private/key
次の各エントリは、サーバーの機能について説明しています。
- ホスト: SSHにこの接続を使用するように指示するために使用するショートカット名。
- ホスト名: 接続するサーバーのアドレス。
- ユーザー: サーバー上で接続するユーザーアカウントの名前。
- IdentityFile: 秘密鍵ファイル(id_rsa)の場所。
-
構成を設定した後 ファイルの場合は、ショートカット名を指定して次のコマンドを使用してサーバーに接続します。
ssh shortcutName
サーバーを再起動した後に新しい接続を確立できない場合は、次の手順を使用して問題を解決してください。
-
SSHまたはSFTPログインの問題をトラブルシューティングする最良の方法は、緊急コンソールにログインしているときにSSH経由でログインを試み、ログを監視することです。これには通常、失敗の理由が含まれます。理由がわからない場合は、ファイアウォールの問題である可能性があります。 RPMサーバーの場合、次のコマンドを実行してログを監視します。
tail -f /var/log/secure
Debianサーバーの場合、次のコマンドを実行してログを監視します。
tail -f /var/log/auth.log
-
connection timeout
が発生した場合 エラーが発生した場合は、使用したIPアドレスをチェックして正しいことを確認してください。サーバーのiptablesをチェックして、SSHが使用するポートをブロックしていないことを確認することもできます。 -
connection refused
エラー、間違ったポートでSSHを使用しようとしている可能性があります。 22以外のポートをリッスンするようにサーバーを変更した場合は、-p
を使用してください SSHを使用してポートを指定するオプション。 -
ログインが拒否された場合は、キーに問題がある可能性があります。
sshd
を変更しますPasswordAuthentication
を設定してパスワード接続を許可する構成yes
に 。サーバーを再起動して、再試行してください。これらの変更後に接続する場合、問題はキーにあり、キーがサーバー上の正しい場所にあることを確認する必要があります。 -
他のすべてが失敗した場合は、変更を確認し、次のコマンドを実行してサーバー上のSSHデーモンを再起動します。
sudo service ssh restart
SSHサービスが不明であるというメッセージが表示された場合は、
sshd
を指定してコマンドを実行します。 代わりにサービス名として。