SSH를 사용하여 로컬 네트워크의 서버에 연결하려고 하는데 로 로그인할 수 있기를 원 하지만 (명백한 보안 목적으로) storm
로 로그인할 수는 없습니다 . root
.pub 키를 다음 위치에 복사했습니다..ssh/authorized_keys
이 /etc/ssh/sshd_config를 사용하면 다음과 같습니다.
PermitRootLogin no
[...]
Match Address 192.168.1.*,127.0.0.1
PermitRootLogin yes
나는 얻다:
$ ssh root@ip
Enter passphrase for key 'PATH_OF_THE_KEY'
$ ssh storm@ip
Permission denied (publickey).
마지막으로 다음 새 줄을 추가합니다.
AllowUsers storm
또는AllowUsers storm root
나는 얻다:
$ ssh root@ip
Permission denied (publickey).
$ ssh storm@ip
Permission denied (publickey).
차단을 주석 처리 하더라도 Match Address
루트와 사용자는 차단됩니다. 누구든지 나를 도와줄 수 있나요?
편집: Storm 사용자에 대한 모든 실패한 연결 기록
localhost sshd[698]: Invalid user storm from 192.168.1.11
localhost sshd[443]: input_userauth_request: invalid user storm [preauth]
localhost sshd[698]: Connection closed by 192.168.1.11 [preauth]
허용되지 않는 비밀번호:
PasswordAuthentication no
ssh -v root@ip
ssh -v storm@ip
동일한 출력을 제공 합니다 AllowUsers storm
.
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.168.1.33 [192.168.1.33] port XXXX.
debug1: Connection established.
debug1: identity file /home/storm/.ssh/id_rsa type -1
debug1: identity file /home/storm/.ssh/id_rsa-cert type -1
debug1: identity file /home/storm/.ssh/id_dsa type -1
debug1: identity file /home/storm/.ssh/id_dsa-cert type -1
debug1: identity file /home/storm/.ssh/id_ecdsa type 3
debug1: identity file /home/storm/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/storm/.ssh/id_ed25519 type -1
debug1: identity file /home/storm/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.1
debug1: match: OpenSSH_7.1 pat OpenSSH* compat 0x04000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr [email protected] none
debug1: kex: client->server aes128-ctr [email protected] none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA XX:XX:XX:XX:XX:XX:XX:XX
debug1: Host '[192.168.1.33]:XXXX' is known and matches the ECDSA host key.
debug1: Found key in /home/storm/.ssh/known_hosts:1
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/storm/.ssh/id_rsa
debug1: Trying private key: /home/storm/.ssh/id_dsa
debug1: Offering ECDSA public key: /home/storm/.ssh/id_ecdsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /home/storm/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).
편집 2:
drwx------ 2 root root 4096 19 sept. 15:47 .ssh
-r-------- 1 root root 236 19 sept. 15:47 authorized_keys
편집 3:
직장에서! Brandon Xavier에게 감사드립니다. 각 사용자(서버 측)가 자신의 .ssh 디렉토리를 가져야 한다는 것을 이해하지 못합니다. 이는 확실히 나중에 고려한 논리입니다.
하지만 이제는 Storm(내가 원하는 것)으로 로그인할 수 있지만 더 이상 루트로 직접 로그인할 수는 없습니다.
둘 다 각각 올바른 소유자/권한 및 동일한 공개 키를 가진 .ssh 디렉터리, 파일을 root
가지고 있습니다 . SSHD 프로필에는 항상 블록이 함께 제공됩니다. 루트 액세스를 방지하려면 어떻게 해야 합니까?storm
authorized_keys
authorized_keys
Match
답변1
.ssh
그 아래의 모든 항목은 사용자가 소유해야 하며(이 경우 "storm") 사용자에게만 권한이 있어야 합니다. chown -R storm ~storm/.ssh; chmod 700 ~storm/.ssh;chmod 600 ~storm/.ssh/authorized_keys
그러면 문제가 해결될 것입니다.
만약에콘솔에 로그인할 수 있는 사람을 제어할 수 있으며, 단순히 비밀번호를 비활성화하고 키를 사용하여 루트 로그인만 허용함으로써 블록과 지시문을 제거할 수 있습니다 Match
.AllowUsers
PasswordAuthentication no
PermitRootLogin without-password
콘솔에 액세스할 수 있는지 테스트해 보세요. . . 혹시라도.
답변2
구성 파일의 "PasswordAuthentication"은 어떻습니까? 구성을 수정한 경우 서비스를 다시 시작해야 합니다.
일부 링크:https://wiki.centos.org/HowTos/Network/SecuringSSH https://raymii.org/s/tutorials/Limit_access_to_openssh_features_with_the_Match_keyword.html
답변3
나는 같은 문제를 가지고있다. 확인한 후 /etc/passwd
myuser 쉘 구성이 다음으로 설정되어 있음을 확인했습니다./bin:false
$ cat /etc/passwd
myuser:x:112:116::/media/sys:/bin/false
이 문제를 해결해야 합니다 usermod myuser -s /bin/bash
. 그 후에는 다음과 같은 문제가 발생합니다.
$ cat /etc/passwd
myuser:x:112:116::/media/sys:/bin/bash
짜잔, 이제 잘 작동합니다 :)