SSH 원리 와 사용

9521 단어 ssh
ssh 가 뭐 예요?
Liux 에서 일 할 때 ssh 는 반드시 알 아야 할 기술 방법 입 니 다.그것 은 원 격 접근, 조작, 전송 을 위해 여러 대의 호스트 간 의 안전 한 암호 화 전송 을 구축 할 수 있다.
SSH 는 Secure Shell 의 줄 임 말 입 니 다.응용 층 과 전송 층 을 바탕 으로 하 는 안전 프로 토 콜
FTP, POP, Telnet 과 같은 전통 적 인 네트워크 서비스 프로그램 은 본질 적 으로 안전 하지 않다.인터넷 에서 데이터, 사용자 계 정, 사용자 암 호 를 명문 으로 전송 하기 때문에 중개인 (man - in - the - middle) 의 공격 방식 에 쉽게 공격 을 받 을 수 있 기 때문이다.다른 사람 이나 한 대의 기계 가 실제 서버 를 사칭 하여 사용자 가 서버 에 보 낸 데 이 터 를 받 은 다음 에 사용자 로 사칭 하여 데 이 터 를 실제 서버 에 전달 하 는 것 이다.한편, SSH 는 현재 비교적 신뢰 할 수 있 고 원 격 로그 인 세 션 과 다른 네트워크 서비스 에 안전성 을 제공 하 는 협의 이다.SSH 프로 토 콜 을 활용 하면 원 격 관리 과정 에서 의 정보 유출 문 제 를 효과적으로 방지 할 수 있다.SSH 를 통 해 전 송 된 모든 데 이 터 를 암호 화 할 수 있 고 DNS 사기 와 IP 사 기 를 방지 할 수 있다.
SSH 의 또 다른 장점 은 전 송 된 데이터 가 압축 되 어 전송 속 도 를 가속 화 할 수 있다 는 것 이다.SSH 는 Telnet 을 대체 할 수 있 을 뿐만 아니 라 FTP, POP, 심지어 PPP 에 안전 한 '채널' 을 제공 할 수 있 는 많은 기능 을 가지 고 있다.이렇게 많이 알 았 으 면 좋 겠 어 요. 사실 ssh 연결 은 암호 화 된 원 격 방문 으로 이해 할 수 있어 요.
- (중국어 위 키 에서 왔 습 니 다)
ssh 연결 인증, 암호 화 방식
ssh 연결 은 CS 모델 (클 라 이언 트 - 서버) 로 클 라 이언 트 가 연결 신청 을 보 내 고 서버 가 클 라 이언 트 를 검증 한 다음 에 연결 신청 을 받 아들 일 지 여 부 를 고려 합 니 다.
ssh 의 안전 암호 화 방식 의 이론 적 기 초 는 비대 칭 암호 화 체계 이다.비대 칭 암호 화 에서 흔히 볼 수 있 는 것 중 하 나 는 RSA 암호 화 알고리즘 이다.ssh 를 사용 할 때 비대 칭 암호 화 와 rsa 의 알고리즘 절 차 를 먼저 알 아야 합 니 다.자세 한 내용 은 참조 RSA 암호 화 알고리즘.
ssh 는 두 가지 단계 의 안전 검증 이 있 습 니 다. 계 정 암호 화 검증, rsa 암호 화 검증 입 니 다.자세 한 매개 변 수 는 sshdconfig 설정 파일 에 설정 (Ubuntu 는/etc/ssh/sshd config, mac 아래 는/etc/sshd config)
계 정 암호 인증
로그 인 할 사용자 의 암 호 를 직접 입력 하 는 것 은 기본 적 인 방식 입 니 다.프로필 을 수정 할 필요 가 없습니다.
클 라 이언 트 에서 사용자 암 호 를 서버 로 직접 전송 하면 암호 정 보 는 중개인 에 게 쉽게 캡 처 되 어 재생 공격 을 실현 할 수 있 습 니 다.ssh 의 실현 방식 은:
  • 1. 클 라 이언 트 가 ssh 서버 에 요청 을 하고 서버 는 자신의 공개 키 를 클 라 이언 트 에 게 되 돌려 줍 니 다.
  • 2. 클 라 이언 트 는 서버 의 공개 키 로 자신의 로그 인 비밀 번 호 를 암호 화하 고 정 보 를 서버 에 보 냅 니 다.
  • 3. 서버 는 클 라 이언 트 가 전송 한 비밀 번 호 를 받 고 자신의 비밀 키 로 디 코딩 합 니 다. 결과 가 정확 하면 로그 인 에 동의 하고 연결 을 만 듭 니 다.

  • 이런 방식 은 여전히 빈틈 이 있다. 중개인 은 서버 로 가장 하여 클 라 이언 트 의 비밀 번 호 를 사취 할 수 있다.
    RSA 암호 화 검증
    rsa 암호 화 검증 방식 은 비대 칭 암호 화 시스템 의 장점 을 충분히 이용 하여 네트워크 에서 비밀 번 호 를 전송 하지 않 아 도 되 고 중개인 의 공격 가능성 을 완전히 차단 했다.절 차 는 다음 과 같다.
    준비 작업
  • - 1. 클 라 이언 트 는 ssh - keygen 명령 을 먼저 사용 하여 비밀 키 와 공개 키 를 생 성 합 니 다.기본 설정 에 따라 비밀 키 는 ~/. ssh/id 에 저 장 됩 니 다.rsa 에서 공개 키 는 ~/. ssh/id 에 있 습 니 다.rsa. pub 중.(일반적으로 이곳 의 파일 을 수정 하지 마 세 요)
  • 0. 클 라 이언 트 는 안전 한 방식 으로 공개 키 를 서버 에 보 냅 니 다.서버 에서 클 라 이언 트 가 보 낸 공개 키 를 ~/. ssh/authorized 에 기록 합 니 다.keys 파일 끝.

  • 연결 만 들 기
  • 1. 클 라 이언 트 가 신청 을 한다.서버 에서 session 키 쌍 을 만 들 고 클 라 이언 트 의 공개 키 를 통 해 암호 화 된 session 공개 키 를 되 돌려 줍 니 다.
  • 2. 클 라 이언 트 는 자신의 키 로 정 보 를 복호화 하여 session 공개 키 를 얻 습 니 다.
  • 3. 그 후의 데이터 상호작용 은 모두 상대방 의 공개 키 를 통 해 암호 화 되 고 상대방 이 정 보 를 받 은 후에 비밀 키 로 복호화 하여 안전 암호 화 과정 을 실현 한다.

  • 암호 화 되 지 않 은 RSA 암호 화 방식 실행 과정
  • 1. ssh 설치
  • mac 에서 자체 적 으로 가지 고 있 는 것 은 ubuntu 에서 직접 sudo apt - get install ssh 입 니 다.
  • 2. 클 라 이언 트 에서 비밀 키 공개 키 생 성
  • ssh - keygen 명령 을 사용 하여 키 쌍 을 생 성 합 니 다.힌트 를 받 으 면 바로 돌아 갑 니 다.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/biaobiaoqi/.ssh/id_rsa): /Users/biaobiaoqi/.ssh/id_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/biaobiaoqi/.ssh/id_rsa. Your public key has been saved in /Users/biaobiaoqi/.ssh/id_rsa.pub. The key fingerprint is: b7:c2:5c:3f:83:5e:5e:93:a4:42:db:51:d8:ac:07:66 [email protected] The key's randomart image is: +--[ RSA 2048]----+ | | | + | | E + | | o + | | S + o o | | o + * = . | | + = B + | | o + + . | | . . | +-----------------+ 

    결 과 는 ~/. ssh/에서 id 생 성 되 었 습 니 다.rsa (비밀 키) 와 idrsa. pub (공개 키)
  • 3. 클 라 이언 트 의 공개 키 idrsa. pub 서버 에 전달
  • 전송 idrsa. pub 를 서버 에 기록 하고 ~/. ssh/authorizedkeys 파일 끝.
    물리 적 으로 U 디스크 로 전송 할 수 있 습 니 다 (더 안전 한 것 같 습 니 다). scp 명령 도 사용 할 수 있 습 니 다. (이 럴 때 는 암호 로 검 증 된 ssh 방식 을 사용 해 야 합 니 다)
    1
    2
    
    $scp ~/.ssh/id_rsa.pub user@host:~/.ssh/tmp_id_rsa.pub $ssh user@host "cat ~./ssh/tmp_id_rsa.pub >> ~/.ssh/authorized_keys"

    scp 전송 을 실행 하 는 과정 에서 첫 번 째 ssh 가 서버 에 연결 되면 클 라 이언 트 는 이 호스트 를 신뢰 하 는 지 여 부 를 알려 줍 니 다. 예 를 들 어:
    1
    2
    3
    4
    
    $scp ~/.ssh/id_rsa.pub user@host:~/.ssh/tmp_id_rsa.pub The authenticity of host XXX can't be established. ECDSA key fingerprint is xxxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no)?

    이 유 는 클 라 이언 트 가 연 결 된 host 가 진정한 host 인지 확인 하지 못 하기 때 문 입 니 다. 일반적인 상황 에 서 는 yes 를 직접 입력 하고 계속 하면 됩 니 다. 여기 서 상세 한 설명 이 있 습 니 다. 클릭 하여 연결
    그리고 비밀 번 호 를 면제 하고 더 안전 한 로그 인 을 할 수 있 습 니 다.
    1
    
     ssh xxxx@hostAddress

    ssh 서버 에 로그 인 할 때 다음 과 같은 문제 가 발생 하면: Agent admitted failure to sign using the key 는 클 라 이언 트 의 비밀 키 를 ssh 관리 시스템 에 수 동 으로 추가 해 야 합 니 다. ssh - add 명령 을 사용 합 니 다. (구체 적 인 메커니즘 은 아직 잘 모 르 겠 습 니 다)
    1
    
    $ssh-add ~/.ssh/id_rsa

    and one more thing;)
    ssh+firefox+autoproy
    월 바깥 세상 이 얼마나 아름 다운 지 보 세 요.
    SCP 명령 암호 화 할당 데이터
    1
    2
    3
    4
    5
    6
    7
    8
    
    #将本地文件复制到远程主机上 $scp ~./tmp user@rehost:~/tmp  #见远程主机上的文件复制到本地 $scp user@rehost:~/tmp ~./tmp  #复制的是目录,需要迭代,添加-r 参数 $scp -r user@rehost:~/tmpDir ~./tmpDir

    SSH 설정
    구체 적 인 매개 변수 세부 사항 은 박문 참조: ssh+firefox-autoproxy SSH 보안 및 입문 설정
    추천 읽 기:
  • sshd_config 설정 설명
  • < linux ssh 사용 깊이 분석 (key 로그 인 상세 설명) >
  • < RSA 키 를 사용 하여 SSH 로그 인 인증 진행 >
  • 《 SSH 원리 와 운용 (一): 원 격 로그 인 》
  • 《 SSH 원리 와 운용 (二): 원 격 조작 과 포트 리 트 윗 》
  • ssh+firefox-autoproxy
  • SSH 보안 및 입문 설정  원문 주소: sshd_config 설정 설명 저작권 성명: 자유 전재 - 비상 용 - 비 파생 - 서명 유지 | http://biaobiaoqi.github.com/blog/2013/04/19/use-ssh/
  • 좋은 웹페이지 즐겨찾기