GNU/Linux >> Linux の 問題 >  >> Linux

LinuxまたはMacOSXでSSHを使用してサーバーに接続します

この記事では、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アクセスをブルートフォースパスワード攻撃から保護できます。公開鍵はサーバーに配置され、一致する秘密鍵はローカルコンピューターに配置されます。キーを使用した接続のみを受け入れるようにサーバーでSSHを構成すると、パスワードだけを使用してログインすることはできなくなります。接続するクライアントは、サーバーに公開鍵が登録されている秘密鍵を使用する必要があります。セキュリティの詳細については、Linuxサーバーのセキュリティのベストプラクティスを確認してください。

SSHキーペアを生成するには、次の手順を使用します。

  1. メールアドレスをラベルとして使用して、次のコマンドを実行します。メールアドレスを[email protected]に置き換えます。 コマンドで。

    ssh-keygen -t rsa -C "[email protected]"
    

    パブリックとプライベートのRSAキーペアが生成されていることを示すメッセージが表示されます。

    プロンプトで、 Enterを押します キーを保存するデフォルトの場所またはenteraファイルを使用して、 Enterを押します。 。

  2. キーペアのパスワードのセキュリティを強化する場合は、パスフレーズを入力して 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]
    
  3. 必要に応じて、新しいキーをローカルの ssh-agentに追加します 接続するたびにその場所を指定しなくても、SSHがキーを検索できるようにするファイル:

    ssh-add ~/.ssh/id_rsa
    

    ssh-agentの代わりにSSH構成ショートカットを使用できます ショートカット構成の指示に従ってファイルを作成します この記事の後半のセクション。

クラウドアカウントに公開鍵を追加します

作成する新しいクラウドサーバーにキーを簡単に追加するには、次の手順に従って公開キーをクラウドアカウントにアップロードします。

  1. クラウドコントロールパネルにログインします。

  2. 上部のナビゲーションバーで、製品の選択> Rackspace Cloudをクリックします 。

  3. サーバー>SSHキーを選択します 。

  4. 公開鍵の追加をクリックします 。

  5. Work Laptopなどのキー名を入力します 、このキーの対象となるコンピューターを思い出させるため。

  6. 公開鍵を保存する地域を選択します。キーを複数のリージョンに保存するには、リージョンごとにこれらの手順を繰り返します。キーはサーバーと同じリージョンに存在する必要があります。

  7. id_rsa.pubの内容を貼り付けます 公開鍵に作成したファイル 分野。ファイルの内容を取得するには、テキストエディタでファイルを開くか、次のコマンドを実行します。

    cat ~/.ssh/id_rsa.pub
    
  8. 公開鍵の追加をクリックします 。

コントロールパネルを使用する代わりに手動でキーを追加する場合は、Linuxサーバーのセキュリティのベストプラクティスを確認し、次のコマンドを使用します。

 ssh-copy-id -i ~/.ssh/id_rsa.pub {username}@{remotePublicIPAddress}
保存されたキーを使用して新しいサーバーを作成します

新しいクラウドサーバーを作成するときに、保存されているキーを新しいサーバーに追加できます。

  1. サーバーの作成 ページで、詳細オプションを展開します セクション。

  2. SSHキーから メニューで、リストからキーを選択します。

  3. リストに保存されているキーが表示されない場合は、次のいずれかのアクションを実行できます。

    • 新しいサーバーのリージョンを、SSHキーを保存したリージョンに切り替えます。
    • 前のセクションの手順を繰り返します。クラウドアカウントに公開鍵を追加します 、新しいサーバーを作成するリージョンにキーを追加します。
既存のサーバーにキーを追加します

クラウドコントロールパネルを使用して、既存のサーバーに公開鍵を追加することはできません。キーを手動で追加するには、次の手順に従います。

  1. クラウドサーバーで、 .sshという名前のディレクトリを作成します SSHを使用して接続するユーザーのホームフォルダー内。

    mkdir -p ~/.ssh
    
  2. authorized_keysを作成または編集します 次のコマンドを使用して、公開鍵をファイルし、許可された鍵のリストに追加します。

    nano ~/.ssh/authorized_keys
    

    キーはすべて1行にあるため、キーが改行で壊れていないことを確認してください。 authorized_keysには複数のキーを含めることができます ファイル、1行に1つのキー。

  3. 次のコマンドを使用して、キーに正しい権限を設定します。

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  4. 問題があり、権限の問題を修正する必要がある場合は、次のコマンドを実行します。

    restorecon -R -v /root/.ssh
    

公開鍵をauthorized_keysに追加した後 、アカウントパスワードの代わりにキーペアを使用してSSH接続を確立できます。

ショートカット構成

次の手順を使用して、〜/ .ssh / configを作成して接続ショートカットを設定します。 ローカルコンピュータにファイルを保存し、サーバーとキーの詳細を追加します。

  1. テキストエディタを使用して、次のテキストを〜/ .ssh / configに追加します ファイル、サーバー情報に一致するように値を変更します:

    Host shortcutName
    HostName serverAddressOrIPAddress
    User remoteUsername
    IdentityFile /path/to/appropriate/ssh/rsa/private/key
    

    次の各エントリは、サーバーの機能について説明しています。

    • ホスト: SSHにこの接続を使用するように指示するために使用するショートカット名。
    • ホスト名: 接続するサーバーのアドレス。
    • ユーザー: サーバー上で接続するユーザーアカウントの名前。
    • IdentityFile: 秘密鍵ファイル(id_rsa)の場所。
  2. 構成を設定した後 ファイルの場合は、ショートカット名を指定して次のコマンドを使用してサーバーに接続します。

    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を指定してコマンドを実行します。 代わりにサービス名として。


Linux
  1. Linux専用サーバーでSSHキーを生成する方法は?

  2. 公開鍵と秘密鍵のペアを使用したパスワードなしのSSH

  3. Mac と Linux の両方を使用した効率的なキー バインド

  1. AndroidからLinuxでSSH接続する方法

  2. 別のサーバーを使用してサーバーにSSH接続する方法は??

  3. LinuxでSSHを使い始める

  1. LinuxサーバーでSSHを使用してPlesk管理者パスワードをリセットするにはどうすればよいですか?

  2. ターミナルを使用してMacOSXからLinuxに接続する

  3. PuTTYを使用してWindowsからLinuxに接続する