はじめに
SSH (セキュアシェル)は、2つのシステム間の安全なリモート接続を可能にします。この暗号化プロトコルを使用すると、暗号化されたチャネルを介して、マシンを管理したり、リモートサーバー上のファイルをコピーまたは移動したりできます。
SSH経由でリモートシステムにログインするには、パスワード認証を使用する2つの方法があります。 または公開鍵認証 (パスワードなしのSSHログイン)。
このチュートリアルでは、パスワードなしのSSHログインを設定して有効にする方法を説明します。
前提条件
- コマンドライン/ターミナルウィンドウへのアクセス
- sudoを使用するユーザー またはルート 特権
- ローカルサーバーとリモートサーバー
- SSHアクセス コマンドライン/ターミナルウィンドウを介してリモートサーバーに接続する
始める前に:既存のSSHキーを確認してください
マシンでSSHキーペアがすでに生成されている可能性があります。システムにSSHキーがあるかどうかを確認するには、次のコマンドを実行します。
ls -al ~/.ssh/id_*.pub
そのようなファイルがないことが出力に示されている場合は、SSHキーを生成する方法を示す次の手順に進みます。
持っている場合は、既存のキーを使用してバックアップし、新しいペアを作成するか、上書きすることができます。
ステップ1:SSHキーペアを生成する
1.最初に行う必要があるのは、SSHキーペアを生成することです。 現在作業しているマシンで。
この例では、4096ビットのキーペアを生成します。メールアドレスも追加しますが、これはオプションです。コマンドは次のとおりです。
ssh-keygen -t rsa -b 4096 -C "[email protected]"
2.次に、キーを保存する場所を入力するか、 Enterを押します デフォルトのパスを受け入れます。
3.パスフレーズを設定するように求められます。これにより接続はさらに安全になりますが、自動化されたプロセスを設定するときに中断する可能性があります。したがって、パスフレーズを入力するか、 Enterを押すだけです。 この手順をスキップします。
4.次に、出力にIDと公開鍵が保存された場所が示され、鍵のフィンガープリントが示されます。
5.次のコマンドを実行して、SSHキーペアが正常に作成されたことを確認します。
ls -al ~/.ssh/id_*.pub
次の画像のように、識別キーと公開キーのパスが表示されます。
ステップ2:公開鍵をリモートサーバーにアップロードする
ssh-copy-id
を使用して、公開SSHキーをリモートサーバーにアップロードできます。 コマンドまたはcat
指図。以下に両方のオプションがあります。
オプション1:ssh-copy-idコマンドを使用して公開鍵をアップロードする
パスワードなしのアクセスを有効にするには、公開鍵のコピーをリモートサーバーにアップロードする必要があります。
1.リモートサーバーに接続し、 ssh-copy-id
を使用します コマンド:
ssh-copy-ide [remote_username]@[server_ip_address]
2.公開鍵は、自動的に .ssh / authorized_keysにコピーされます。 ファイル。
オプション2:catコマンドを使用して公開鍵をアップロードする
公開鍵をサーバーにコピーする別の方法は、 cat
を使用することです。 コマンド。
1.サーバーに接続し、 .sshを作成することから始めます その上のディレクトリ。
ssh [remote_username]@[server_ip_address] mkdir -p .ssh
2.次に、リモートユーザーのパスワードを入力します。
3.これで、ローカルマシンからリモートサーバーに公開鍵をアップロードできます。このコマンドは、キーが authorized_keysという名前で保存されることも指定します。 新しく作成された.ssh ディレクトリ:
cat .ssh/id_rsa.pub | ssh [remote_username]@[server_ip_address] 'cat >> .ssh/authorized_keys'
ステップ3:パスワードなしでサーバーにログインする
SSHキーペアが生成され、公開キーがリモートサーバーにアップロードされると、パスワードを入力しなくても専用サーバーに接続できるようになります。
次のコマンドを実行して、セットアップが機能するかどうかを確認します。
ssh [remote_username]@[server_ip_address]
システムはリモートサーバーに直接ログインする必要があります。パスワードは必要ありません。
オプション:リモートサーバーのファイル権限のトラブルシューティング
リモートサーバーのファイル権限により、パスワードなしのSSHログインで問題が発生する可能性があります。これは、古いバージョンのSSHでよくある問題です。
すべての手順を実行してもパスワードの入力を求められる場合は、まずリモートサーバーのファイル権限を編集します。
- .sshの権限を700に設定します ディレクトリ。
- 。ssh/authorized_keysの権限640を設定します ディレクトリ。
次のコマンドを使用してファイルのアクセス許可を編集します。
ssh [remote_username]@[server_ip_address] "chmod 700 .ssh; chmod 640 .ssh/authorized_keys"
プロンプトが表示されたら、パスワードを入力します。アクションが成功した場合、出力はありません。この問題は今すぐ解決する必要があります。