SSH(セキュアシェル)は、安全な方法でリモートログインを提供できるプロトコルです。FTPまたはTelnetリモートログインを使用して、アカウントのパスワードと情報を実用的なクリアテキストの形式でネットワークに送信しますが、これは非常に安全ではありません。また、SSHは通信内容を暗号化します。情報が盗聴された場合でも、送信されたパスワード、特定のコマンド、およびコマンドの戻り結果を解読することはできません。
SSHプロトコルを使用したLinuxシステムのリモート管理には、sshdサービスプログラムの導入と構成が必要です。Sshdは、SSHプロトコルに基づいて開発されたリモート管理サービスプログラムであり、セキュリティ検証の2つの方法を提供します。
- アカウントとパスワード認証によるパスワードベースの認証ログイン
- 鍵ベースの認証で鍵ペアをローカルに生成し、鍵ペアの公開鍵をサーバーにアップロードして、サーバーの公開鍵と比較します
sshdサービスの構成情報は、/ etc / ssh / sshd_configファイルに格納されています。sshd構成ファイルに含まれる共通のパラメーターと関数は次のとおりです。
- ポート22-デフォルトのsshdサービスポート
- ListenAddress 0.0.0.0-sshdサーバーがリッスンするIPアドレスを設定します
- プロトコル2-SSHプロトコルのバージョン番号
- HostKey / etc / ssh / ssh_host_key:SSHプロトコルバージョンが1の場合、DES秘密キーが保存されている場所
- HostKey / etc / ssh / ssh_host_rsa_key——SSHプロトコルバージョンが2の場合、RSA秘密鍵が保存されている場所
- HostKey / etc / ssh / ssh_host_dsa_key——SSHプロトコルバージョンが2の場合、DSA秘密鍵の保存場所
- PermitRootLogin yes——ルート管理者が直接ログインできるようにするかどうかを設定します
- StrictModesは、リモートユーザーの秘密キーが変更されたときに、yes-directに接続を拒否します
- MaxAuthTries 6-パスワードの最大試行回数
- MaxSessions 10-最大端末数
- PasswordAuthentication yes-パスワード認証を許可するかどうか
- 空白のパスワードログインを許可するかどうかにかかわらず、PermitEmptyPasswords
注:ssh_configはクライアント構成ファイルです(他のマシン構成パラメーターにログインする方法)
sshd_configはサーバー側の構成ファイルです(他のユーザーが私にログインする方法のパラメーター)
通常、クライアント構成ファイルは変更しないでください。
リモート接続にはsshを使用します。形式は次のとおりです:ssh [parameter] username @ hostIPaddress
1.アカウントのパスワード検証でログインします
[root @ localhost〜] #ssh 192.168。75.132
ホストの真正「192.168.75.132(192.168.75.132)」ができ' tを確立します。
ECDSAキーフィンガープリントは SHA256:2WVtTvXeAlDpu1IieRaV / RPEgyVgD9X94VKNemR1Kzsです。
ECDSAキーフィンガープリントは MD5:79:02:30:46:40:a1:fe:45:54:ab:48:5d:34:db:62:69 です。接続
を続行してもよろしいですか(はい/いいえ)?yes
警告:既知のホストのリストに「192.168.75.132 」(ECDSA)を永久に追加しました。
ルート@ 192.168。75.132 " #管理者のパスワードを入力:S・パスワード
最終ログイン:日で4月を。19 16:14:59 2020
[ルートの推進、@〜]#
[ルート@促進〜]#
[ルート@促進〜]#出口
ログアウト192.168
への接続。75.132クローズ。
/ etc / ssh / sshd_configファイルのPermitRootLoginパラメーター値をnoに設定すると、管理者がリモートでサーバーにログインして、ハッカーがパスワードを破る可能性を減らすことができなくなります。
192.168.75.150のsshd構成ファイルを変更します。
構成ファイルを変更した後、サービスを再起動します
[root @ localhost〜]#systemctl restart sshd
[root @ localhost〜 ]#systemctl enable sshd
テスト中
[ルート@ localhostの〜]#のSSH 192.168。75.150
root @ 192.168。75.150 " のパスワード:
アクセス許可は拒否されました、もう一度試してください。
パスワードログインは次のとおりです。
- クライアントはログイン要求をサーバーに送信します
- サーバーはクライアント要求を受信し、独自の公開鍵をクライアントに送信します
- クライアントは公開鍵を使用してログインパスワードを暗号化し、サーバーに送信します
- サーバーは秘密鍵を使用して復号化します。パスワードが正しい場合、クライアントはログインを許可されます
初めてログインすると、公開鍵が信頼できないという警告が生成されます。公開鍵が受信されると、クライアントファイル$ HOME / .ssh / known_hostsに保存されます。次回接続するときに、警告が生成されなくなります。パスワードを直接入力できます。
2.セキュリティキーを使用してログインを確認する
1.クライアントホストでキーペアを生成します
[root @ localhost〜]#ssh-keygen 公開 / 秘密のrsa鍵ペアを生成しています。 入力ファイル で 保存ザ・キー(。/ルート/にSSH / id_rsaと):ストレージ・パスを押して、キーまたはのセットを入力します。 パスフレーズを入力(パスフレーズがない場合は空):Enterキーを押すか、キーのパスワードを設定します 同じパスフレーズをもう一度入力してください:Enterキーを押すか、キーのパスワードを確認してください IDは / root /に保存されました。ssh / id_rsa。 公開鍵は / root /に保存されました。ssh / id_rsa.pub。 重要なフィンガープリントは次のとおりです。 SHA256:flbEv7iJvF / CkvrCXIrRaM8E63dqsBO75V7YCo7oiKw [email protected] キー' のrandomart画像である: + --- [RSA 2048 ] ---- + | | | 。| | o | | 。。。| | = S。。| | B.oo. +。。| | o。&+ oB + o | | o。。o * + XB.o = | | Eoo。o ** == o + | + ---- [SHA256] ----- +
[root @ localhost〜] #ls .ssh /
id_rsa id_rsa.pub known_hosts
2.クライアントホストで生成された公開鍵ファイルをサーバーに転送し、ssh-copy-idコマンドを使用して、ログインしたホストの公開鍵ファイルの内容をserver.sshディレクトリのauthorized_keysファイルに自動的に追加します。
[ルート@ localhostの〜]#sshの -copy- ID 192.168。75.132
/ usr / bin / ssh -copy- id:INFO:新しいキーでログインして、すでにインストールされているものをすべて除外しようとしている
/ usr / bin / ssh -copy- id:INFO:1 key( s)まだインストールされていません- プロンプトが表示されたら、新しいキーをインストールします
ルート@ 192.168。75.132 「パスワードサーバを入力:S・パスワード
(S)のナンバーキーを追加しました:1
次に、「ssh '192.168.75.132' 」
を使用してマシンにログインし、 必要なキーのみが追加されていることを確認します。
3.キー認証ログインのみを許可するようにサーバーを設定する
[root @ promote Desktop]#vim / etc / ssh / sshd_config
PermitAuthenticationいいえ
[root @ promote Desktop]#systemctl restart sshd
[root @ promote Desktop]#systemctl enable sshd
4.クライアントで、サーバーへのログインを試みます。現時点では、パスワードなしでログインできます。
[ルート@ localhostの〜]#のSSH 192.168。75.132は、
前回は失敗したログイン日4月:19 16:36:13 CST 2020:から0に:0
だった1つの失敗したログイン以来の試み最後に成功したログインが。
最終ログイン日:2020年 4月19日 16:23:2020年9 月192.168から。75.150
[root @ promote〜 ]#
キーログインは次のとおりです。
- クライアントは公開鍵をサーバーに保存します
- クライアントはサーバーにリモートでログインし、サーバーはランダムな文字列をクライアントに送信します
- クライアントは独自の秘密鍵で文字列を暗号化し、サーバーに送信します
- サーバーは事前に保存された公開鍵を使用して復号化します。成功すると、ユーザーが信頼されていることを示し、パスワードなしのログインシェルが許可されます
#ssh-keygen
#ssh-copy-id user @ server IP
#sshユーザー@サーバーIP