공개 키 인증을 위해 QNAP SSH 연결을 사용할 수 있습니다.

5508 단어 Qnap
TL;DR
  • /mnt/HDA_ROOT/.config/ssh/sshd_config 수정을 통해 일반적인 방법으로 sshd 설정을 변경할 수 있음
  • 사용자의 홈 디렉터리의 소유자는 관리자이기 때문에 신속하게 수정
  • 계기.
    SSH에 로그인할 수 없습니다.
    펌웨어 업데이트 알림이 왔습니다. 버전 업그레이드 4.2.2 를 하고 시작합니다.
    SSH 로그인이 불가능해 다양한 조사를 진행한 결과 공개 키 인증을 통해 로그인할 수 있었다.
    해본 일
    당황하지 않고 소란 피우지 않고 텔넷으로 로그인.
    평소 텔넷에서 끊었기 때문에 Enable로 설정한 후 로그인

    SSH 설정 확인
    telnet
    $ cat /etc/ssh/sshd_config | more
    
    아무 문제 없는 것 같습니다.(루트로 로그인하는 것은 문제지만, 규격은 이렇다)
    그럼 다시 일어나봐요.
    telnet
    $ daemon_mgr sshd stop sshd
    $ daemon_mgr sshd start "/usr/sbin/sshd -f /etc/ssh/sshd_config -p 22"
    
    오, SSH를 통해 로그인할 수 있습니다.
    하지만 웹에서 SSH의 Enable/Disable을 진행하면 더 이상 연락이 되지 않습니다.
    이것 괜찮아요?config 보지 마.
    영구적 인 대책 을 취하다
    이렇게config 찾기
    telnet
    $ cd /
    $ find -name 'sshd_config'
    
    잠깐만요.
    ・・・
    다녀왔습니다.
    telnet
    ./etc/ssh/sshd_config
    ./mnt/HDA_ROOT/.config/ssh/sshd_config
    ./share/MD0_DATA/.qpkg/Optware/etc/openssh/sshd_config
    ./share/MD0_DATA/.qpkg/Entware-ng/etc/ssh/sshd_config
    
    포장된 SSH/OpenSSH를 담았지만, QNAP이 나쁜 심보로 시작할 때마다 자신의 설정으로 고쳐 쓰기 때문에 사용하지 않았다.
    그래서 이상한 게 /mnt/HDA_ROOT/.config/ssh/sshd_config야.
    telnet
    $ cp /etc/ssh/sshd_config /mnt/HDA_ROOT/.config/ssh/sshd_config
    
    이렇게 되면 웹에서 SSH의 Enable/Disable을 실행해도 문제가 없습니다.
    HDA_ROOT 같은 건 다시 시작해도 사라지지 않아요.
    ・・・
    다시 시작해도 SSH에 로그인할 수 있습니다.
    응?이거 SSH 설정 장난 아니에요?
    공개 키 인증 구성
    지금까지 재부팅할 때마다config를 초기화해서 포기했는데 이번에는 괜찮을 것 같아요.
    우선 관리자 공개 키 인증
    sshd_config 편집 및 아래 주석 삭제(#)
    /mnt/HDA_ROOT/.config/ssh/sshd_config
    #RSAAuthentication yes
    #PubkeyAuthentication yes
    #AuthorizedKeysFile     .ssh/authorized_keys
    
    다음은 키 생성입니다.사실 고객이 키를 생성한 후에 서버에 공개 키를 보냅니다
    간단하게 서버 측의 ssh-keygen을 사용합니다.
    비밀 키 (qnap rsa) 는 절대 비밀이기 때문에 진정한/share/Public/에 넣을 수 없습니다.
    ssh
    $ cd ~/.ssh
    $ ssh-keygen -t rsa -f qnap_rsa
    $ mv qnap_rsa.pub authorized_keys
    $ chmod 600 authorized_keys
    $ chmod 666 qnap_rsa
    $ mv qnap_rsa /share/Public/qnap_rsa
    
    성공의 비밀 열쇠는 클라이언트에서 사용하게 해 주세요.
    이 정도면 웹에서 SSH의 Enable/Disable을 진행하면 공개 키 인증을 통해 가능하다.
    일반 사용자 추가
    일반 사용자nak씨에게 ssh를 여는 절차입니다.
    우선 관리자로 미리 준비하세요.
    sshd_config에 nak를 추가합니다.
    /mnt/HDA_ROOT/.config/ssh/sshd_config
    AllowUsers admin nak
    
    아님 관리자?susudo가 설치되지 않았기 때문이다.
    admin
    $ opkg install coreutils sudo
    
    아님 관리자?
    nak의 Home 디렉토리를 ssh ready로 설정합니다.
    admin
    $ cd /share/homes/
    $ chown nak:everyone nak
    $ chmod 711 nak
    
    여기서부터 낙이야.
    .ssh의 설정은 admin과 마찬가지로 클라이언트에서 완성된 기밀 키 (nak qnap rsa)를 사용합니다.
    nak
    $ mkdir .ssh
    $ chmod 700 .ssh
    $ cd .ssh
    $ ssh-keygen -t rsa -f qnap_rsa
    $ mv qnap_rsa.pub authorized_keys
    $ chmod 600 authorized_keys
    $ chmod 666 qnap_rsa
    $ mv qnap_rsa /share/Public/nak_qnap_rsa
    
    이렇게 하면 일반 사용자는 공개 키 인증을 통해 로그인할 수 있다.config를 바꿔서 수비를 더 강화하면 됩니다.
    PermitRootLogin no
    PasswordAuthentication no
    
    또 낙의 조개껍질을 변경한 패스워드의 위치는 여기에 있다.
    /mnt/HDA_ROOT/.config/passwd
    nak:x:1001:100:Linux User,,,:/share/homes/nak:/bin/bash
    
    참고 문헌
    QNAP SSH 연결을 공개 키 인증으로 설정
    SSH 키 인증 설정
    SSH용 사용자 추가 단계 및 고려 사항 요약
    QNAP forum : su or sudo "command not found"
    QNAP forum : how to enable ssh history

    좋은 웹페이지 즐겨찾기