SSHH 비밀번호 면제 인증 생산 환경 배포, 관리, 백업 노트 01

SSHH 비밀번호 면제 검증 생산 환경 배포, 관리, 백업 실전 응용 지침
ssh 는 secure 셸 protocol 의 약자 로 온라인 패 킷 암호 화 기술 을 통 해 데 이 터 를 전달 합 니 다.원 격 로그 인 을 위 한 세 션
다른 네트워크 서비스 와 안전 한 협 의 를 제공 합 니 다.
ssh 자체 가 두 가지 서비스 기능 을 제공 합 니 다. 하 나 는 telnet 와 유사 한 원 격 온라인 에서 셸 서 비 스 를 사용 하 는 것 입 니 다. 즉, 속칭 ssh 입 니 다.
또 하 나 는 FTP 서비스 와 유사 한 sftp - server 로 더 안전 한 TFP 를 제공 할 수 있 습 니 다.
클 라 이언 트 를 보면 ssh 는 두 가지 단계 의 안전 검증 을 제공 합 니 다.
첫 번 째 단계 (구령 기반 보안 검증)
자신의 계 정과 암 호 를 알 면 원 격 호스트 에 로그 인 할 수 있 고 모든 전송 데 이 터 는 암호 화 됩 니 다.
두 번 째 (키 기반 보안 검증)
 
키 에 의존 해 야 합 니 다. 즉, 키 를 만 들 고 접근 할 서버 에 공용 키 를 두 어야 합 니 다. 필요 하 다 면
shh 서버 에 연결 하면 클 라 이언 트 ssh 소프트웨어 가 서버 에 요청 합 니 다. 키 로 보안 검증 을 요청 합 니 다.
서버 가 요청 을 받 은 후, 먼저 이 서버 의 사용자 홈 디 렉 터 리 에서 공용 키 를 찾 은 다음, 그것 을 당신 과
보 낸 공용 키 를 비교 합 니 다.두 키 가 일치 하면서버 는 공용 키 로 '질문' (challenge) 을 암호 화하 여 보 냅 니 다.
클 라 이언 트 소프트웨어 에
네트워크 패 킷 의 암호 화 기술 은 일반적으로 공개 키 와 비밀 키 (Public key and private key) 로 구 성 된 키 쌍 을 암호 화하 고 복호화 하 는 것 입 니 다.
호스트 측 에서 클 라 이언 트 측 데 이 터 를 전송 하려 면 먼저 공개 키 를 통 해 암호 화 한 다음 에 네트워크 에서 전송 하고 클 라 이언 트 측 에 도착 한 후에 비밀 키 를 통 해 암호 화 됩 니 다.
데이터 가 풀리다.인터넷 에서 전 송 된 데 이 터 는 암호 화 되 어 있 기 때문에 데이터 내용 은 당연히 비교적 안전 하 다.
1. 데 이 터 를 발급 합 니 다.
구체 적 수요
   모든 서버 가 같은 사용자 xiaoping 시스템 사용자 아래 에서 A 기기 가 로 컬 에서 데 이 터 를 BC 기기 로 배포 하 는 것 을 실현 하도록 요구 합 니 다. 배포 과정 에서 B. C 가 필요 하지 않 습 니 다.
알림 시스템 암호 검증, 물론 클 라 이언 트 기기 의 cpu, load, mem 등 사용 정 보 를 대량으로 볼 수 있 습 니 다.
A 서버 에서 데 이 터 를 발표 하고 B. C 클 라 이언 트 서버 로 가 는 비밀번호 없 는 로그 인 인증 솔 루 션 을 실현 하 더 라 도.
A--->B
A--->C
(1) 출발 전 준비
  키 를 배치 하기 전에 먼저 A. B. C 서버 에 각각 xiaoping 사용 자 를 추가 하고 비밀 번 호 를 설정 한 다음 xiaoping 을 통 해
사용자 가 여러 서버 를 실현 하기 전에 비밀번호 로그 인 을 면제 합 니 다. A 서버 를 예 로 들 면 구체 적 인 절 차 는 다음 과 같 습 니 다.
[root@clientA ~]# useradd xiaping
[root@clientA ~]# echo "123123123"|passwd --stdin xiaoping

(2) 배치 시작
   A 서버 를 중심 으로 서버 를 배포 하기 때문에 A 단 에 Public key (자물쇠) 와 private key (열쇠) 를 만 드 는 것 을 선택 하 였 습 니 다.
           
      (A 는 센터 발급 서버) A - ------------> C (B 수신 클 라 이언 트 서버)
                                     |------>B (C 수신 클 라 이언 트 서버)
     알림: 전체 프로젝트 구현 중 열쇠 (private key) 와 자물쇠 (pubic key) 를 한 번 만 만 들 면 됩 니 다.
A. B. C 임 의 기계 에서 실 행 됩 니 다. 본 고 는 A 위 에 키 쌍 을 만 드 는 것 을 선택 하 십시오.
[root@clientA ~]# su xiaoping
[xiaoping@clientA root]$ ssh-keygen -t dsa

\# ssh - keygen 은 키 를 만 드 는 도구 입 니 다. - t 매개 변 수 는 키 를 만 드 는 형식 을 말 합 니 다. 여 기 는 dsa 형식 키 를 만 드 는 것 입 니 다.
\# ssh - keygen - t rsa 를 실행 하여 rsa 형식 키 를 만 들 수 있 습 니 다.
\# rsa 와 dsa 암호 화 알고리즘 의 차이
\# RSA 는 암호 화 알고리즘 (ps: RSA 도 디지털 서명 을 할 수 있 고 암호 화 할 수 있 습 니 다) 이 고 DSA 는 디지털 서명 알고리즘 에 만 사용 하여 인증 을 실현 할 수 있 습 니 다.
Generating public/private dsa key pair.
Enter file in which to save the key (/home/xiaoping/.ssh/id_dsa):  #        
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/xiaoping/.ssh/id_dsa.  #private key (  )  
Your public key has been saved in /home/xiaoping/.ssh/id_dsa.pub.  #public key ( )  
The key fingerprint is:
ae:7f:ec:ef:c9:1f:88:0e:e0:50:85:b7:d7:a2:40:bb xiaoping@clientA
The key's randomart p_w_picpath is:
+--[ DSA 1024]----+
|       ..        |
|      o..        |
|     ..o . .     |
|     .o . o .    |
|    . .oSo .     |
|     oEo.  . .   |
|      . o.. . .  |
|       . oo. . . |
|      ...ooo=..  |
+-----------------+
[xiaoping@clientA ~]$ ls -l .ssh
total 12
-rw-------. 1 xiaoping xiaoping 668 Feb 12 08:32 id_dsa
-rw-r--r--. 1 xiaoping xiaoping 606 Feb 12 08:32 id_dsa.pub
[root@clientA ~]# ls -ld /home/xiaoping/.ssh/
drwx------. 2 xiaoping xiaoping 4096 Feb 12 08:32 /home/xiaoping/.ssh/

(3) 공개 키 발급 (잠 금)
  공개 키 (잠 금) 를 A 에서 B. C 단 사용자 의 집 디 렉 터 리 로 복사 합 니 다.
즉, A 단 에서 다음 명령 을 수행 합 니 다. (scp 를 이용 하여 복사 한 다음 프로필 과 같은 이름 으로 이름 을 바 꿀 수 있 습 니 다)
[root@clientA .ssh]# /usr/bin/ssh-copy-id -i id_dsa.pub [email protected]
The authenticity of host '202.192.77.20 (202.192.77.20)' can't be established.
RSA key fingerprint is e2:d9:87:29:0a:d8:1b:6f:00:02:59:e4:79:34:ab:dd.
Are you sure you want to continue connecting (yes/no)? yes  #  yes     ssh  ,   
         /.ssh/known_hosts   。
[email protected]'s password: 
Now try logging into the machine, with "ssh '[email protected]'", and check in:
  .ssh/authorized_keys
[email protected]'s password:
Now try logging into the machine, with "ssh '[email protected]'", and check in:
  .ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[root@clientB ~]# cd /home/xiaoping/.ssh/
[root@clientB .ssh]# ls -a
.  ..  authorized_keys

    우 리 는 bc 엔 드 의 xiaoping 집 디 렉 터 리 와 authorized 를 하나 더 만 들 수 있 습 니 다.keys, 사실 이 파일 은 A 단의 id 입 니 다.dsa_pub 파일
기본 적 인 상황 에서 ssh 설정 파일 에서 기본적으로 호출 된 공개 키 경 로 는. ssh 이 고 파일 이름 은 autorized 입 니 다.keys.
[root@clientB .ssh]# cat /etc/ssh/sshd_config |grep authorized_keys
#AuthorizedKeysFile     .ssh/authorized_keys

메모:. ssh 디 렉 터 리 권한 (700) 및 authorizedkeys 공개 키 의 파일 권한 (600) 은 A 단 과 같 습 니 다.
\# A 단 을 자물쇠 로 하기 때문에 id 만 필요 합 니 다.dsa. pub 를 b. c 엔 드 에 xiaoping 홈 디 렉 터 리 의. ssh 디 렉 터 리 에 올 리 면 됩 니 다 (자동 이름 변경)
\# ssh - copy - id 는 시스템 자체 셸 스 크 립 트 로 공개 키 를 나 눌 수 있 습 니 다.
(4) 테스트
[xiaoping@clientA .ssh]$ ssh [email protected] free -m
             total       used       free     shared    buffers     cached
Mem:           143        129         13          0         20         25
-/+ buffers/cache:         83         59
Swap:         1983          0       1983
[xiaoping@clientA .ssh]$ ssh [email protected] free -m
             total       used       free     shared    buffers     cached
Mem:           249        170         79          0         19         36
-/+ buffers/cache:        114        135
Swap:          799          0        799
[xiaoping@clientA .ssh]$ ssh [email protected] /sbin/ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:DE:9A:AA
          inet addr:202.192.77.20  Bcast:202.192.77.63  Mask:255.255.255.192
          inet6 addr: fe80::20c:29ff:fede:9aaa/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4166 errors:0 dropped:0 overruns:0 frame:0
          TX packets:740 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:445151 (434.7 KiB)  TX bytes:97452 (95.1 KiB)

\# 직접 연결 하려 면 비밀 번 호 를 입력 하지 않 아 도 됩 니 다. 이렇게 스 크 립 트 를 통 해 대량의 기계 정 보 를 볼 수 있 습 니 다!
(5) 테스트 데이터 구축
[xiaoping@clientA jiaoben]$ mkdir -p /tmp/xiaoping
[xiaoping@clientA jiaoben]$ cd /tmp/xiaoping/
[xiaoping@clientA xiaoping]$ touch xiaozhou xiaolai xiaoqi xiaogui
[xiaoping@clientA xiaoping]$ ls -l
total 0
-rw-rw-r--. 1 xiaoping xiaoping 0 Feb 12 12:48 xiaogui
-rw-rw-r--. 1 xiaoping xiaoping 0 Feb 12 12:48 xiaolai
-rw-rw-r--. 1 xiaoping xiaoping 0 Feb 12 12:48 xiaoqi
-rw-rw-r--. 1 xiaoping xiaoping 0 Feb 12 12:48 xiaozhou
[xiaoping@clientA xiaoping]$ /usr/bin/scp -P 22  -r /tmp/xiaoping/ [email protected]:~
xiaozhou                                      100%    0     0.0KB/s   00:00
xiaogui                                       100%    0     0.0KB/s   00:00
xiaoqi                                        100%    0     0.0KB/s   00:00
xiaolai                                       100%    0     0.0KB/s   00:00
[xiaoping@clientA xiaoping]$ /usr/bin/scp -P 22  -r /tmp/xiaoping/ [email protected]:~
bash: scp: command not found  #20      scp       
lost connection
[xiaoping@clientA xiaoping]$ rsync -avz -p -e 'ssh -p 22' /tmp/xiaoping [email protected]:~
bash: rsync: command not found  #    rsync  
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]
[xiaoping@clientA xiaoping]$ rsync -avz -p -e 'ssh -p 22' /tmp/xiaoping [email protected]:~
sending incremental file list
xiaoping/
xiaoping/xiaogui
xiaoping/xiaolai
xiaoping/xiaoqi
xiaoping/xiaozhou
sent 254 bytes  received 92 bytes  138.40 bytes/sec
total size is 0  speedup is 0.00
[xiaoping@clientA xiaoping]$

scp 와 rsync 의 차이 
모두 ssh 프로 토 콜 로 복사 합 니 다. rsync 는 자체 프로 토 콜 로 복사 할 수 있 습 니 다. scp 는 전체 복사 이 고 rsync 복사 는 증분 파일 (동기 삭제) 입 니 다.
사용법:
A.ssh -p22 [email protected]
\# - p 소문 자 연결 포트 기본 22 생략 가능
B.scp -P22 -r -p/tmp/xiaoping [email protected]:~
\# scp 파일 이나 디 렉 터 리 를 원 격 으로 복사 하 는 명령
\# - p (대문자. ssh 와 의 차이 점 주의) 포트 연결.기본 22 생략 가능
\# - r 디 렉 터 리 복사 표시
\# - p 는 복사 전후 에 파일 디 렉 터 리 속성 을 유지 하 는 것 을 표시 합 니 다. 
\# 원 격 디 렉 터 리 를 로 컬 로 잡 을 수 있 습 니 다: scp - P22 - [email protected]:/tmp/tmp/xiaoping (로 컬 디 렉 터 리)
\# 형식 --> scp [옵션] [원본 파일/user@ip디렉토리user@ip대상 디 렉 터 리 /디렉토리  
C. rsync 가 ssh 채널 을 통 해 데 이 터 를 전송 하 는 용법
rsync -avz -progress -- delete -e 'ssh -p 22'/tmp/xiaoping [email protected]:/tmp/xiaoping
rsync -avz -progress          -e 'ssh -p 22'/tmp/xiaoping [email protected]:/tmp/xiaoping
  /etc/hosts  
[root@clientA ~]# /usr/bin/rsync -avz -p -e 'ssh -p 22' /etc/hosts [email protected]:/etc/
The authenticity of host '192.168.1.101 (192.168.1.101)' can't be established.
RSA key fingerprint is 6c:3a:ef:2b:3f:18:b7:db:83:b4:72:22:5b:07:23:50.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.101' (RSA) to the list of known hosts.
[email protected]'s password:
sending incremental file list
hosts
rsync: mkstemp "/etc/.hosts.I1kMPT" failed: Permission denied (13)
sent 130 bytes  received 37 bytes  10.12 bytes/sec
total size is 133  speedup is 0.80
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]

이상 의 처리 방법:
xiaoping 사용 자 를 sudo 권한 사용 자 를 설정 한 다음 에 sudo 기능 을 통 해 일반 을 실현 할 수 있 습 니 다.
사용자 푸 시 루트 만 처리 할 수 있 는 문제 입 니 다.visdudo 를 실행 하여 기본 값 requiretty 인 자 를 엽 니 다:
사례:
  
C-server  (센터 서버 발판)                                                  
                                                           E - server (수신 서버)
  
     
                              A - server (센터 발급 서버)
     
   
 D - server (중심 서버 발판)                                                 
                                                              D - server (수신 서버)                                     
a. 이 구조의 목적 은 센터 발급 서버 A 를 잘 관리 하 는 것 이다.A 서버 의 외부 네트워크 IP 를 취소 하고 방화벽 을 열 어 ssh 대외 모든 IP 연결 을 금지 합 니 다.
내부 에 외부 네트워크 가 없 는 기기 만 C - server 에 접근 합 니 다.
b. 그리고 내부 서버 C - server 는 외부 네트워크 IP 가 없고 통과 할 수 있 습 니 다.×××연결, 이렇게 센터 발급 서버 A - server 에 연결 하려 면 로그 인해 야 합 니 다.
D - server 에 접속 한 후 C - server 를 통 해 최종 A - server 에 로그 인 합 니 다.
[파일 배포 및 대량 관리 방안]
a.sudo+sshkey+rsync
b.cfengine
c.puppet
5.expect
6. secureCRT 의 일괄 관리 기능 + http 서비스.
7. sersync 마스터 모드 또는 lrsync
A - sever 에서 bc 서버 에 서버 구축 을 수여 합 니 다.
[xiaoping@clientA sysconfig]$useradd xiaoping12
[xiaoping@clientA sysconfig]$echo "123123123" | passwd --stdin xiaoping12
[xiaoping@clientA sysconfig]$ ssh-keygen -t dsa
[xiaoping@clientA ~]$ ls -l .ssh/
total 16
-rw-------. 1 xiaoping xiaoping  668 Feb 12 08:32 id_dsa
-rw-r--r--. 1 xiaoping xiaoping  606 Feb 12 08:32 id_dsa.pub
-rw-r--r--. 1 xiaoping xiaoping 1975 Feb 16 12:12 known_hosts
-rw-r--r--. 1 xiaoping xiaoping  606 Feb 12 10:23 [email protected]
[xiaoping@clientA ~]$ ssh-copy-id -i .ssh/id_dsa.pub [email protected]
[xiaoping@clientA ~]$ ssh-copy-id -i .ssh/id_dsa.pub [email protected]
[xiaoping@clientA ~]$ ssh -t 192.168.20.25 free -m

두 번 째 항목 은 A 파일 발급 BC 서버 홈 디 렉 터 리 를 실현 합 니 다.
[xiaoping@clientA .ssh]$ scp id_dsa 192.168.20.25:/home/xiaoping/.ssh/
id_dsa                                       100%  668     0.7KB/s   00:00
[xiaoping@clientA .ssh]$ vi benfen.sh
#!bin/bash
if [ $# -ne 1 ];then
  echo "sh $0 arg0"
 exit 1
fi
for ip in 192.168.20.25 192.168.20.50
do
scp -r -p $1 xiaoping@$ip:~
done
~

좋은 웹페이지 즐겨찾기