リモート管理サービス(SSH)

1.リモートサービスの概念の説明

ssh 安全なリモート接続 22 インターネットサーバー デフォルトのrootユーザーはリモートでログインできます
Telnet リモート接続 23 ネットワーク機器がコンピューター室のLANに接続されている rootを使用してリモートでログインできない
リモートサービスはリモート接続管理ホストを実現できます

  リモートサービスはデータのリモートダウンロードと送信を実現できます

 
 

SSH telnetサービスを使用してリモート接続を実現
SSH:暗号化されたデータ転送方法(より高いセキュリティ、より複雑)インターネット接続経由のアクセスポート:22デフォルトでtelnet へのrootユーザーのリモート接続をサポート
:クリアテキスト転送方法(より低いセキュリティ、複雑)少ないアクセス)LAN接続を介したアクセスポート:23デフォルトでは、rootユーザーはリモート接続を禁止されています

Telnetサービス

Linuxシステムのtelnet-serverサービスはrootユーザーのログインをサポートせず、通常のユーザーとしてのみログインでき、その後にsuコマンドが続きます

Linuxシステムのssh @ root 172.16ユーザーが追加されていない場合、1.41は現在のユーザーを表します

第二に、リモートサービス接続の原則

2.1 ssh接続図

 

 

2.2 SSH接続プロセス

クライアント:接続確立通信要求の送信
サーバー:キー情報の確認応答
クライアント:キー情報の確認の実行
サーバー:送信する公開キー情報の送信
クライアント:保存する公開キーの受信と確認情報の送信(〜/ .ssh / known_hosts)
サーバー:パスワード検証情報の送信(暗号化処理)
サーバー:パスワード情報の入力(暗号化処理)
データ接続が確立され、
データが送信されます(暗号化処理)

3、リモート接続

3.1パスワードに基づくリモート接続

手順:
①:SSH + IPアドレス
②:ユーザー名(ホスト名)を入力し
たパスワード(対応するホスト名のパスワード)を入力します。③ 

例えば:
①:SSH  10.00.8 
②:ルート
③:ABC123を

3.2キーに基づくリモート接続

3.2.1簡単な設定:

管理サーバー(m01-192.168.81.161):

ステップ1:キーペアを作成する
[root@m01 ~]# ssh-keygen -t dsa 生成公钥和私钥
[root@m01 ~]# ll ~/.ssh/id*
ステップ2:管理側が公開鍵を配布します(ここでは操作が必要です)
[root@m01 ~]# ssh-copy-id -i /root/.ssh/id_dsa.pub [email protected]
手順3:リモート接続テストを実施する(パスワード情報を入力せずに直接接続できます)
[root@m01 ~]# ssh [email protected] hostname

現在、2つの問題があります。1.複数のホストをバッチで管理する方法2.公開鍵をバッチで配布するスクリプトを作成する方法

スクリプトを作成する最も簡単な方法:ヒープコマンド

#!/ bin / bash
 in ip for 163 164 do ssh -copy- id -i / root /。ssh /id_dsa.pub root @ 192.16881。$ ip
 完了  

    

しかし、まだ問題があります:

1、はい/いいえを確認する必要があります

2.パスワード情報を入力する必要がある

3.サービスポート番号が変更されました。公開鍵を配布するにはどうすればよいですか?

3.2.2公開鍵を配布するためのパスワード情報のインタラクティブなキーフリー入力を実現する

ステップ1:ダウンロードとソフトウェアsshpassインストール
 yumを インストール - Y-sshpass 
第二段階:公開鍵を配布する自由なインタラクティブな方法の実施を命じる
sshpass -p123456 SSH -copy- 言及ID以上。-i /ルート/ SSH / id_dsa.pubルート@ 192.16881.163 

サービスポート番号は、公開鍵のバッチを配布する方法、変更されました:
sshpass -p123456 SSH -copy- 上記のid上記の。-i /ルート/ SSH @ /id_dsa.pubルート192.16881.163 -p 52113  " -o StrictHostKeyChecking = NO "

3.2.3 公開鍵スクリプトのバッチ配布:

1.スクリプトと連携するホストアドレスファイルを準備します。

cat / server / scripts / ip_list.txt
 192.16881.163 
192.16881.164 
192.16881.165

2.公開鍵をバッチで配布するためのスクリプト

猫の distribute_public_key。sh !/ bin / bash
     for ip in $(cat / server / scripts / ip_list.txt)
     do 
       sshpass -p654321 ssh -copy- id -i / root /。ssh /id_rsa.pub $ ip -o StrictHostKeyChecking = no&> / dev / null 
      if [$?-eq 0 ]
         then 
           echo   " to $ ip distribute_key " 
           echo   " public key distribution success " 
           echo   "" 
        else 
           echo   "to $ ip distribute_key " 
           echo   " 公開鍵の配布に失敗しました" 
           echo   " " 
      fi 
    完了

3.公開鍵チェックスクリプト(バッチ管理スクリプト)-シリアルシリアル管理を配布します。

[ルート@ M01スクリプト]#猫の check_pub_key。SH !/ binに/ bashの
CMDは $ = 1 
のための IPをして $( /サーバ/スクリプト/ ip_list.txt)
 
    エコーを " ====================ホスト$ ip check ==================== " 
    ssh $ ip $ CMD 
echo " "
完了

4、SSHサービス構成ファイルの分析

の/ etc / SSH / sshd_configの
ポート22                  --- (コメント22のデフォルト状態のデフォルトポート)開始ポート情報サービス指定    
 ListenAddressの0.00.0       のネットワーク接続を許可する---を通じてカード****** 
                              PS:リスンアドレスローカルネットワークカード上のアドレス
 PermitRootLogin no である必要があります -root ユーザーがリモートで接続できるようにするかどうか PermitEmptyPasswords no に変更することをお勧めします
 no --- リモートユーザーが空のパスワードでログインできるようにするかどうか PasswordAuthentication をnoに変更することをお勧めします
 -サポートするかどうかパスワードを使用して GSSAPIAuthentication にリモートで接続します
 -GSSAPI 認証モードをオフにするかどうか、使用しない場合は UseDNS noをオフ
 にします-DNS逆解決をオンにするかどうか、閉じることをお勧めします

 

第5に、エンタープライズ環境のバッチ配布公開鍵の演習

5.1企業環境

m01 root   linux @ 123   sshサービスポート22 
web01 root linux @ 123   sshサービスポート65531 
web02 root linux @ 123   sshサービスポート65532 
nfs01 root linux @ 123   sshサービスポート65533 
backup root   linux @ 123   sshサービスポート65534

5.2ホスト情報ファイルを書き込む

cat / server / scripts / ip_list.txt
 192.16881.162:@ linxu 12365531 
192.16881.163:@ linxu 12365532 
192.16881.164:@ linxu 12365533 
192.16881.165:linxu @ 12365534
      

5.3バッチ配布用の公開鍵ファイルの作成

猫の distribute_public_key。sh !/ binに/ bashの
       ためのホスト $( /サーバ/スクリプト/ ip_list.txt)
       DO 
        HOST_IP = $(エコー $ホスト| awkの -F " "  ' {$ 1印刷} ' 
        host_pass = $(エコー $ host | awk -F " "  ' {print $ 2} ' 
        host_port = $(echo $ host | awk-F " "  ' {print $ 3} ' 
        sshpass -p $ host_pass ssh -copy- id -i / root /。ssh /id_rsa.pub $ host_ip -o StrictHostKeyChecking = no -p $ host_port&> / dev / null 
        if [$?-eq 0 ]
         次に
           echo   " to $ host_ip distribute_key " 
           echo   " public key distribute ok " 
           echo   "" 
        else 
           echo   " to $ host_ip distribute_key " 
           echo   "
           エコー  "" 
        fi 
      完了

 

6、SSHリモートサービス防止侵入プログラム

1.キーを使用してログインし、パスワードなしでVPN /要塞マシンにログインします
。2.アレイ方式:SSHのセキュリティ問題を解決し
  ます。a。ファイアウォールがSSHを閉じ、ソースIPの制限(LAN、信頼されたパブリックネットワーク)を指定します。b。SSHを
  開き、ローカルのみをリッスンします。ネットワークIP(ListenAddress 192.168.81.162)
3.サーバーに外部ネットワークIPを与えないようにします
。4.最小化(ソフトウェアのインストール-許可)
5.システムの重要なファイルまたはコマンドのフィンガープリントを作成します/ etc / profile /etc/rc.local 
/ etc / passwd md5sum 11110000aaaabbbbモニタリング
inotify / bin モニタリング
6、重要なファイルはロックされていますchattr + i + a

リモート送信に関する7つの一般的な問題

while read lineを使用してファイル情報を読み取ると、ループが突然中断される
分析ポイント01:sshコマンドが使用されていない場合のループは正しい
分析ポイント02:sshコマンドに標準入力がある限り、ループ
はポイント03を正しく分析する:ループモードを変更する適切に循環
背景にsshコマンド、正しくループ:ポイント04を分析し

、ファイルを読むためにcatコマンドを使用しては、すべての情報がメモリバッファに入れられます
、時間が、読み取りバッファは、情報の各ラインを読みながら、通常の行ずつ読まれ
ながらライン+読んで   SSHを   、それが空のバッファ読み込みます

 

 

  

 

おすすめ

転載: www.cnblogs.com/nsthink-666/p/12731559.html