Tắt xác thực mật khẩu cho SSH


127

Tôi đang tìm cách vô hiệu hóa máy khách SSH truy cập lời nhắc mật khẩu như đã lưu ý ở đây .

Tôi không thể tắt password:lời nhắc đăng nhập root . Tôi đã thay đổi sshd_configtệp để đọc:

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

và cũng đã thay đổi các quyền chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys. Tôi đang thiếu gì? Điều này có yêu cầu tôi có một cụm mật khẩu không?

Kết xuất chi tiết:

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/user/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/user/.ssh/id_dsa
debug1: Trying private key: /home/user/.ssh/id_ecdsa
debug1: Next authentication method: password

Tệp / etc / ssh / sshd_config:

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# 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 no

ssh -v user @ server để nhận đầu ra chi tiết giúp bạn khắc phục sự cố.
Niall Byrne

Cả hai ssh_configsshd_configPasswordAuthentication- luôn sắc nét!
Brent Bradburn

Câu trả lời:


199

Trong tập tin /etc/ssh/sshd_config

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication no

Bỏ ghi chú dòng thứ hai, và nếu cần, hãy thay đổi có thành không.

Sau đó chạy

service ssh restart

7
Nhiều hướng dẫn đề xuất thay đổi ChallengeResponseAuthentication, PasswordAuthentication, UsePAM từ có thành không trên máy chủ. Đã thử nghiệm thành công trong Debian / Ubuntu.

9
FYI, cách systemd để khởi động lại dịch vụ là: systemctl restart sshdĐây là cách mặc định trên Ubuntu mới hơn.
therealjumbo

Làm cách nào để thêm khóa mới vào máy chủ trong khi xác thực mật khẩu bị tắt? Chắc chắn có một cách để làm điều này mà không cần phải bật xác thực mật khẩu, mỗi khi ai đó muốn thêm khóa ...
Matthew

1
@Matthew Có lẽ sử dụngssh-copy-id
iamyojimbo

@iamyojimbo nhưng bạn vẫn cần khóa được ủy quyền để có thể kết nối và gửi khóa bằng lệnh đó.
Matthew

16

Chạy

service ssh restart

thay vì

/etc/init.d/ssh restart

Điều này có thể hoạt động.


Điều này đã làm việc cho tôi; bất kỳ ý tưởng tại sao sử dụng init.d không?
Seb

1
Phụ thuộc vào hương vị linux của bạn ... Trên gentoo cả hai đều làm việc cho tôi.
Gene Pavlovsky

15

Đây là một tập lệnh để thực hiện việc này tự động

# Only allow key based logins
sed -n 'H;${x;s/\#PasswordAuthentication yes/PasswordAuthentication no/;p;}' /etc/ssh/sshd_config > tmp_sshd_config
cat tmp_sshd_config > /etc/ssh/sshd_config
rm tmp_sshd_config

3

Tôi đã làm theo các bước sau (dành cho Mac).

trong /etc/ssh/sshd_configsự thay đổi

#ChallengeResponseAuthentication yes
#PasswordAuthentication yes

đến

ChallengeResponseAuthentication no
PasswordAuthentication no

Bây giờ tạo khóa RSA:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

(Đối với tôi, khóa RSA đã hoạt động. Khóa DSA không hoạt động.)

Một khóa cá nhân sẽ được tạo ~/.ssh/id_rsacùng với ~/.ssh/id_rsa.pub(khóa công khai).

Bây giờ chuyển đến thư mục .ssh :cd ~/.ssh

Enter rm -rf authorized_keys(đôi khi nhiều phím dẫn đến lỗi).

Đi vào vi authorized_keys

Enter :wqđể lưu tệp trống này

Đi vào cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Khởi động lại SSH:

sudo launchctl stop com.openssh.sshd
sudo launchctl start com.openssh.sshd

Bạn không thể sử dụng touchđể tạo tệp trống authorized_keys?
Peter Mortensen

-8

Đây là từ một hướng dẫn tôi có:

Trên máy của bạn dưới dạng root:

ssh-keygen -t rsa

Và để trống cụm mật khẩu.

Từ máy cục bộ của bạn (và bạn sẽ phải nhập mật khẩu):

ssh root@remotemachine mkdir -p .ssh

Sau đó:

cat .ssh/id_rsa.pub | ssh root@remotemachine 'cat >> .ssh/authorized_keys'

Bây giờ bạn có thể đăng nhập mà không cần mật khẩu nhắc nhở

ssh root@remotemachine

Xem đăng nhập SSH mà không cần mật khẩu nếu bạn gặp bất kỳ sự cố nào!


2
Tôi đang tìm cách chặn lời nhắc mật khẩu xuất hiện trong mọi trường hợp. Force đăng nhập qua chỉ bàn phím ssh
Matt Stokes

Điều này nên làm điều đó. Nó sẽ mở trực tiếp mà không cần nhắc bạn nhập mật khẩu mà từ một ứng dụng khách cụ thể.
Fabrizio Mazzoni

1
có nhưng điều này cũng sẽ cho phép khách hàng không được phép thử mật khẩu phải không?
Matt Stokes

Thay đổi những điều sau: ChallengeResponseAuthentication no, PasswordAuthentication no, UsePAM no This sẽ chỉ cho phép xác thực khóa. Chỉ cần thử nghiệm trên hệ thống của tôi và nó sẽ từ chối với: Permission denied (public key)
Fabrizio Mazzoni

1
Bạn chưa uncomment các PasswordAuthentication không phần nếu tập tin bạn được đăng là cấu hình thực tế
Fabrizio Mazzoni
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.