SSH(Secure Shell)は、クライアントシステムがサーバーと安全に通信できるようにする暗号化されたプロトコルです。システムにリモートで接続し、管理タスクを実行し、ファイルにアクセスできます。 SSHキーを使用したサーバーとの通信は、パスワード認証よりも安全で便利な方法です。
ここLinuxAPTでは、サーバー管理サービスの一環として、お客様が関連するSSHクエリを実行するのを定期的に支援しています。
このコンテキストでは、Debian 9システムでSSHキーを作成する方法と、さまざまな方法を使用してサーバーにSSHキーをコピーする方法を検討します。
DebianでキーをSSH接続する方法は?
この手順を実行する前に、sudo権限を持つユーザーを使用していることを確認してください。
私。まず、以下のコマンドを使用して、クライアントシステムにキーペアを作成します。
$ ssh-keygen
ii。デフォルトでは、ssh-keygenは2048ビットのRSAキーペアを生成します。より大きな4096ビットのキーを作成する場合は、次のようにフラグに-b4096を渡すことができます。
$ ssh-keygen -t rsa -b 4096
以下のような出力が表示されます:
Output
Generating public/private rsa key pair.
Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):
iii。 Enterキーを押して、キーペアを./sshディレクトリに保存するか、選択に応じて場所を指定できます。
その後、以下のように安全なパスフレーズを入力するように求められます。パスフレーズは、キーにセキュリティレイヤーを追加します。オプションです。設定したくない場合は、Enterキーを押すだけでスキップできます。
Output
Enter passphrase (empty for no passphrase):
次に、次のような出力が表示されます。
Your identification has been saved in /home/yourusername/.ssh/id_rsa.
Your public key has been saved in /home/yourusername/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:+cxkUbcUyFc7jXMHnQNlm/2O8rj+yDyP5Rnt29ov8Bc [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| ..oB*o|
| .ooo*B|
| . .+=*|
| . . o+|
| S o .|
| * . E |
| + .o+ +|
| o.Oo=o|
| .O=B=B|
+----[SHA256]-----+
これで、Debianサーバーでの認証に使用できる公開鍵と秘密鍵ができました。
iv。次のように入力して、ファイルが生成されているかどうかを確認することもできます。
ls ~/.ssh/id_*
次のような出力が表示されます:
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub
公開鍵をDebianサーバーにコピーする方法は?
次のステップは、Debianサーバーに公開鍵を配置することです。 publicをコピーする簡単で高速な方法は、ssh-copy-idユーティリティを使用することです。
次のコマンドを実行します:
$ ssh-copy-id username@server_ip_address
ユーザー名のパスワードを入力するように求められます:
Output
username@server_ip_address's password:
ユーザーが正常に認証されると、公開鍵がリモートユーザーの〜/ .ssh / authorized_keysファイルに追加され、接続が切断されます。
Output
Number of key(s) added: 1
これで、コマンドssh username @ server_ip_addressを使用してマシンにログインし、追加するキーのみが追加されていることを確認できます。
ローカルシステムにssh-copy-idユーティリティがインストールされていない場合は、次のコマンドを使用して公開鍵をコピーできます。
cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
サーバーへのパスワードベースのSSHアクセスがあることを確認してください。そうすれば、上記の方法を使用できるのは自分だけです。
SSHキーを使用してサーバーにログインする方法は?
これで、リモートユーザーのパスワードなしでリモートマシンにログインできるようになります。
SSHコマンドを使用して接続を試みることができます:
$ ssh username@server_ip_address
初めてログインする場合は、次のように表示される場合があります。
yesと入力し、Enterキーを押して続行します:
Output
The authenticity of host '192.168.27.18 (192.168.27.18)' can't be established.
ECDSA key fingerprint is ed:ed:f4:g9:66:ge:53:48:e1:55:00:fd:6d:d7:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
これで、キーにパスフレーズを設定していない場合は、パスフレーズを要求せずにすぐにログインできます。それ以外の場合は、パスフレーズの入力を求められます。認証が成功すると、新しいシェルセッションでDebianサーバーでユーザーアカウントが開きます。
SSHパスワード認証を無効にする方法は?
SSHのパスワード認証を無効にすることで、セキュリティレイヤーをもう1つ追加できます。プロセスを開始する前に、パスワードを入力せずにサーバーに対して認証できること、およびsudoが有効なユーザーアカウントを持っていることを確認してください。
私。 sshを使用してサーバーにログインしましょう:
$ ssh username@server_ip_address
ii。次に、/ etc / ssh/sshd_configにあるSSH構成ファイルを編集します。
$ sudo nano /etc/ssh/sshd_config
iii。 PasswordAuthenticationディレクティブを見つけ、行がコメントアウトされている場合は、その行のコメントを解除し、以下に示すように値を「no」に設定します。
PasswordAuthentication no
iv。ファイルを保存して閉じます。以下のコマンドを使用してSSHサービスを再起動する必要があります:
$ sudo systemctl restart ssh
現在、Debianサーバーでパスワードベースの認証が無効になっています。