セキュリティを重視するLinuxユーザーは、サーバーに接続するときに常にSSHプロトコルを使用します。これは、SSHがネットワーク経由で送信されるデータまたは情報を暗号化する安全なプロトコルであるためです。 SSHは、telnetやrloginなどの90年代の古くて安全でないプロトコルに取って代わりました。このガイドでは、SSHコマンドの使用法を例とともに見ていきます。
デフォルトでは、SSHは TCP/IPポート22で実行されます
SSHサービスがLinuxシステムで実行されているかどうかの確認
現在Linuxシステムにログインしていて、SSHが実行されているかどうかを確認する場合は、コマンドを実行します
# systemctl status sshd
サンプル出力
さらに、netstat
を使用して、サーバーのポート22でsshがリッスンしていることを確認できます。 示されているコマンド
# netstat -pnltu
サンプル出力
2つの手法により、SSHプロトコルがポート22で実行されていることが確認されました。
SSHを使用したリモートシステムへのログ記録
Linuxマシンからrootユーザーとしてリモートシステムにログインするには、次の構文を使用します。
# ssh root@host-ip-address
たとえば、リモートのDebian PC IP 173.82.208.144
にログインします。
# ssh [email protected]
初めて接続する場合は、次のプロンプトが表示されます
yes
と入力します サーバーをknown_hosts
のリストに追加します ~/.ssh/known_hosts
にあります
各サーバーは、暗号化キーであるホストキーで構成されています。このキーは、SSHプロトコルを使用してシステムを認証するために使用されます。
次に、リモートシステムのパスワードの入力を求められます。パスワードを入力し、「ENTER」を押してシステムにログインします。
通常のユーザーとしてシステムにログインする
リモートルートログインが無効になっている場合は、通常のユーザーのアカウントを使用してリモートシステムにログインしたい場合があります。これを行うには、以下の構文に従います
# ssh username@host-ip-address
または
# ssh -l username host-ip-address
リモートDebianシステムに常駐するユーザー「john」としてログインするには、コマンドを実行します
# ssh [email protected]
サンプル出力
以下のコマンドを使用して同じものを取得できます。
# ssh -l john 173.82.208.144
サンプル出力
パスワードなし認証の構成
場合によっては、リモートシステムに常にアクセスする必要がある場合や、これらのシステムへのアクセスが必要なサービスがある場合があります。パスワード認証は、時間の浪費につながるか、リモートシステムへのアクセスを必要とする自動化されたアプリケーションへのアクセスを妨げる可能性があります。このため、リモートサーバーに対してパスワードなしのSSH認証を構成すると便利です。
ステップ1:SSHキーを生成する
最初のステップは、次のコマンドを使用してサーバー上にSSHキーを生成することです。
# ssh-keygen
サンプル出力
各ステップでプロンプトが表示されたら、[Enter]キーを押してデフォルトを維持します
公開鍵– id_rsa.pub
– ~/.ssh/
に保存されます ディレクトリ
ステップ2:SSH公開鍵をリモートクライアントにコピーする
次のステップは、生成された公開鍵をリモートクライアントシステムにコピーすることです。これを実現するために、ssh-copy-id
を使用します 指図 。このコマンドは、SSHキーを許可されたキーとしてリモートクライアントにコピーします。これにより、その後の自動パスワードなしログインが可能になります。
# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
サンプル出力
これで、パスワードの入力を求められることなく、リモートのDebianシステムにシームレスにログインできます
サンプル出力
公開鍵は、クライアントシステムの~/.ssh/authorized_keys
に保存されます。 ファイル。
注意点
- SSHクライアントは、接続先のシステムにホストキーを保存します。これらのキーは、
known host keys
と呼ばれます。~/.ssh/
に保存されます ディレクトリ。 - 秘密鍵–
id_rsa
rootユーザーのみがアクセス可能であり、どのシステムにもコピーしないでください。別のサードパーティに漏洩した場合、これは中間者攻撃につながる可能性があり、クライアントシステムがハッカーによって侵害される可能性があります。