linux ssh 신뢰 구축 및 흔한 문제 해결 방법

3886 단어 linuxssh
1. 로컬 서버 ssh 키를 생성합니다. 존재하는 경우 무시할 수 있습니다.
$ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

돌아오는 길에 현지 집 목록에서 ~/.ssh/키 파일 생성, 존재하는지 확인하면 무시할 수 있습니다.(더 많은 ssh-keygen 사용 도움말, ssh-keygen-h 참조)
생성된 후에는 다음과 같습니다.
$ls -ltra ~/.ssh/id_rsa*
-rw-r--r--. 1 root root  408 May  4 13:20 /root/.ssh/id_rsa.pub
-rw-------. 1 root root 1675 May  4 13:20 /root/.ssh/id_rsa

2. ssh가 원격 서버에 접속하여 방화벽을 개통하고 개통되면 무시할 수 있습니다
$/sbin/iptables -I INPUT -i eth0 -s 10.10.10.10 -p tcp -m tcp --dports 22 -j ACCEPT

방화벽을 개통한 후 로컬 ssh 10.10.10.11 22가 켜져 있는지 확인합니다(로컬 서버 IP: 10.10.10.10, 원격 서버 IP: 10.10.11로 가정).
3. 원격 서버에 ~/가 있는지 확인합니다.ssh/authorized_keys 파일과 해당 디렉터리가 존재하지 않으면 생성, 아니오를 무시할 수 있습니다.
$ls -ltra ~/ | grep ssh 
drwx------.  2 root root       4096 May  4 13:38 .ssh
$ls -ltr .ssh/authorized_keys 
-rw-------. 1 root root 408 May  4 13:38 .ssh/authorized_keys

참고: 파일 ~/.ssh/authorized_keys의 권한은 600, 디렉터리 ~/입니다.ssh/권한은 700이고 사용자 디렉터리 권한도 700이어야 합니다. 그렇지 않으면 신뢰가 효력을 상실합니다.
4. 이 컴퓨터에서 생성한 공개 키 파일(~/.ssh/id_rsa.pub)의 내용을 원격 서버에 추가합니다 ~/.ssh/authorized_keys
$cat .ssh/id_rsa.pub

위의 파일에 있는 내용을 대상 서버에 붙여넣기 ~/.ssh/authorized_keys 중.
5. 귀찮으면 3-4 2단계 조작을 무시하고 ssh-copy-id 명령을 사용하여 한 번에 도착할 수 있습니다.
$ssh-copy-id -i ~/.ssh/id_rsa.pub 10.10.10.11

$ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine

완성된 후에 정상적인 상황에서 우리는 로컬에서 비밀번호가 없이 ssh로 원격 서버에 로그인할 수 있다.
로컬 사용자 루저 키 내용을 원격 사용자 루저 홈 디렉터리에 추가하면 ~/.ssh/authorized_keys 파일에서 로컬 사용자는 [email protected](원격 IP), 사용자의 대응 관계를 방문해야 합니다.
6. 비정상적인 경우, 우리는 몇 가지 오류를 만날 수 있습니다. 위의 절차를 다 끝낸 후에도 비밀번호 없이 로그인할 수 없습니다.
  • 방화벽 확인 OK
  • 원단 확인 ~/.ssh/authorized_keys 파일 권한이 올바르고 직렬이 없습니다..
  • 공개 키가 정확한지 확인하세요
  • ssh-vvvip를 신속하게 사용하여 실행 상세한 과정에 오류가 있는지 확인하고 실제 상황에 따라 배열합니다
  • /var/log/audit/audit 보기.로그 원격 로그 오류
  • 원거리 목표복 검사/etc/ssh/sshd_config 및 로컬/etc/ssh/ssh_config 설정이 정상인지 여부입니다
  • sshd 서비스를 다시 시작합니다

  • 7. 셀리누스를 열면 ssh는 비밀번호로 로그인해야 합니다.
    파일의 보안 컨텍스트는 다음과 같습니다.
    # ls -laZ .ssh/
    drwx------  root root ?                                .
    dr-xr-x---. root root system_u:object_r:admin_home_t:s0 ..
    -rw-r--r--  root root ?                                authorized_keys
    -rwx------  root root ?                                id_dsa
    -rwx------  root root ?                                id_dsa.pub
    -rwx------  root root ?                                id_rsa
    -rwx------  root root ?                                id_rsa.pub

    위와 같이, 나의 것.ssh 디렉터리 파일의 보안 상하문은 정상적인 것과 어울리지 않습니다.restorecon-r-vv를 사용합니다.ssh/복구,sellinux를 enforcing으로 설정하고 서버를 다시 시작하면 적용됩니다.
    복구 후에는 다음과 같습니다.
    # ls -laZ .ssh/
    drwx------. root root system_u:object_r:ssh_home_t:s0  .
    dr-xr-x---. root root system_u:object_r:admin_home_t:s0 ..
    -rw-r--r--. root root system_u:object_r:ssh_home_t:s0  authorized_keys
    -rwx------. root root system_u:object_r:ssh_home_t:s0  id_dsa
    -rwx------. root root system_u:object_r:ssh_home_t:s0  id_dsa.pub
    -rwx------. root root system_u:object_r:ssh_home_t:s0  id_rsa
    -rwx------. root root system_u:object_r:ssh_home_t:s0  id_rsa.pub
  • 위에서 보여준 것처럼.ssh 디렉터리는 ssh_가 아닙니다home_t,restorecon -r -vv/home/복구 디렉터리 파일 보안 상하문..
  • 이런 상황은 일반적으로 우리가 처음에 홈 섹션에 루트 디렉터리를 마운트했기 때문에 단독 섹션이 없기 때문에 새로운 섹션을 포맷하고 집 디렉터리를 마운트한 후에 이런 문제를 초래할 수 있다
  • 마찬가지로 setenforce 0을 사용하여 SELinux를 닫거나 수정/etc/Selinux/config 파일을 다시 시작하면 적용됩니다. 파일 보안 상하문을 복구할 필요가 없습니다
  • # getenforce 
    Disabled
    [root@dbbak_bj_10 ~]# setenforce 
    usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
  • restorecon에 대한 자세한 내용은 다음과 같습니다.http://l.51yip.com/search/restorecon
  • 좋은 웹페이지 즐겨찾기