Linux
SSH 強化未按預期工作
我正在嘗試在我的伺服器上進行 ssh 強化,但看起來它只會阻止所有人。我在目標伺服器上檢查了 auth.log,它只是說:“連接被 xxxx 關閉
$$ preauth $$" 讓我在這裡粘貼 sshd_config:
# Package generated configuration file # See the sshd_config(5) manpage for details # What ports, IPs and protocols we listen for Port 1000 # Use these options to restrict which interfaces/protocols sshd will bind to #ListenAddress :: #ListenAddress 0.0.0.0 Protocol 2 # HostKeys for protocol version 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key #Privilege Separation is turned on for security UsePrivilegeSeparation yes # Lifetime and size of ephemeral version 1 server key KeyRegenerationInterval 3600 ServerKeyBits 768 # Logging SyslogFacility AUTH LogLevel INFO # Authentication: LoginGraceTime 120 PermitRootLogin no StrictModes yes RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys # Don't read the user's ~/.rhosts and ~/.shosts files IgnoreRhosts yes # For this to work you will also need host keys in /etc/ssh_known_hosts RhostsRSAAuthentication no # similar for protocol version 2 HostbasedAuthentication no # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication #IgnoreUserKnownHosts yes # To enable empty passwords, change to yes (NOT RECOMMENDED) PermitEmptyPasswords no # Change to yes to enable challenge-response passwords (beware issues with # some PAM modules and threads) ChallengeResponseAuthentication no # Change to no to disable tunnelled clear text passwords PasswordAuthentication no # Kerberos options #KerberosAuthentication no #KerberosGetAFSToken no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes # GSSAPI options #GSSAPIAuthentication no #GSSAPICleanupCredentials yes X11Forwarding yes X11DisplayOffset 10 PrintMotd no PrintLastLog yes TCPKeepAlive yes #UseLogin no #MaxStartups 10:30:60 #Banner /etc/issue.net # Allow client to pass locale environment variables AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server # Set this to 'yes' to enable PAM authentication, account processing, # and session processing. If this is enabled, PAM authentication will # be allowed through the ChallengeResponseAuthentication and # PasswordAuthentication. Depending on your PAM configuration, # PAM authentication via ChallengeResponseAuthentication may bypass # the setting of "PermitRootLogin without-password". # If you just want the PAM account and session checks to run without # PAM authentication, then enable this but set PasswordAuthentication # and ChallengeResponseAuthentication to 'no'. UsePAM yes AllowUsers <myusername>
我已將我的公鑰與目標伺服器上使用者名主目錄下的 authorized_keys 文件匹配。這裡有什麼問題?
我正在嘗試像這樣執行 ssh:
ssh -p 1000 username@serverhostname
在我當地,它一直在說:
Ubuntu 12.04.2 LTS Permission denied (publickey).
我已經解決了這個問題,並發現該特定使用者的目錄(.ssh)和文件(authorized_keys)是由 root 創建的,因此當本地嘗試登錄時,文件 /home/username 存在權限問題/.ssh/authorized_keys
我是怎麼想出來的?
INFO 日誌級別沒有幫助,所以我嘗試將 DEBUG 模式放入 sshd_config 並在遠端伺服器上的 /var/log/auth.log 上放置一個tailf,然後嘗試使用以下命令登錄:
ssh -p <port number> username@serverhost
並在 auth.log 上看到 authorized_keys 文件存在權限錯誤。我更改了該目錄的權限,然後進行了登錄,一切正常!
謝謝大家!