it-swarm-vi.com

Làm thế nào để buộc ssh client chỉ sử dụng mật khẩu auth?

Nếu tôi sử dụng pubkey auth từ ví dụ: Ubuntu 11.04, làm cách nào tôi có thể đặt ứng dụng khách ssh chỉ sử dụng mật khẩu auth cho máy chủ? (chỉ cần vì kiểm tra mật khẩu trên máy chủ, nơi tôi đăng nhập mặc định bằng khóa)

Tôi tìm thấy một cách:

mv ~/.ssh/id_rsa ~/.ssh/id_rsa.backup
mv ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.backup

và bây giờ tôi được nhắc nhập mật khẩu, nhưng có cách nào chính thức không?

414
LanceBaynes

Gần đây tôi cũng cần cái này và nghĩ ra cái này:

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no example.com

Bạn cần đảm bảo rằng máy khách không được cấu hình để không cho phép xác thực mật khẩu.

636
scoopr

Tôi đã phát hiện ra một lối tắt cho mục đích này:

ssh user:@example.com

Lưu ý dấu hai chấm (:) và mật khẩu trống sau nó.

174
Halil Özgür

Cũng như phương thức được đăng bởi scoopr, bạn có thể đặt từng tùy chọn Máy chủ trong tệp cấu hình máy khách ssh của mình.

Trong thư mục .ssh, Hãy tạo một tệp có tên config (nếu nó chưa tồn tại) và đặt quyền thành 600, Sau đó bạn có thể tạo các phần bắt đầu bằng

Host <some hostname or pattern>

và sau đó đặt cho mỗi tùy chọn Máy chủ sau đó, ví dụ:

Host bob.specific.foo
user fred

Host *.home.example
user billy
port 9191

để bạn có thể có

Host server.to.test
PubkeyAuthentication=no

trong tập tin đó, và sau đó chỉ đơn giản là

ssh server.to.test

và tùy chọn sẽ được chọn.

38
EightBitTony

Gần đây tôi cần điều này nhưng không có tùy chọn nào ở trên hoạt động, ssh -v Cho thấy các tùy chọn dòng lệnh được chuyển qua công tắc -o Đã bị vượt quá bởi các giá trị được chỉ định trong ~/.ssh/config tập tin.

Những gì đã làm việc này là:

ssh -F /dev/null <username>@<Host>

Từ trang ssh man:

 -F configfile
     Specifies an alternative per-user configuration file.  If a
     configuration file is given on the command line, the system-wide
     configuration file (/etc/ssh/ssh_config) will be ignored. The default 
     for the per-user configuration file is ~/.ssh/config.

Tín dụng cho câu trả lời này: Làm cách nào tôi có thể bỏ qua ssh .ssh/config?

14
adeelx

Tôi đã thử một vài trong số những câu trả lời này, nhưng ssh -v tiếp tục hiển thị các khóa công khai của tôi bị kéo ra khỏi thư mục nhà của tôi. Tuy nhiên, việc chỉ định một tệp nhận dạng không có thật đã lừa tôi:

ssh -i /dev/null Host

Tôi phải thực hiện việc này vĩnh viễn (để khắc phục xung quanh máy chủ SSH bị hỏng trong PDU gắn trên giá APC - ở lại xa tránh xa những điều này nếu bạn quan tâm đến bảo mật - vì vậy cuối cùng tôi đã đưa tùy chọn vào tập tin cấu hình:

Host apc1 apc2
KexAlgorithms +diffie-hellman-group1-sha1
IdentityFile /dev/null
6
miken32

Và cũng chắc chắn, không có BatchMode=yes hoạt động trong .ssh/config. Nếu không, bạn không có cơ hội, để có được một mật khẩu tương tác Nhắc.

2
Gunnar Tiedt

Tôi có thể là người duy nhất trên thế giới gặp vấn đề này, nhưng tôi đã có ssh từ một hệ điều hành khác đang chạy (choco ssh trong Windows trong Cygwin Shell) được thấy qua which ssh

Vì vậy, giải pháp là

 /usr/bin/ssh [email protected]

Lưu ý đường dẫn đầy đủ. Tôi đã làm điều này sau khi tôi đã chạy cyg-get openssh

1
Jonathan

Các câu trả lời @scoopr và @Halil Özgür không hiệu quả với tôi.

Điều này làm việc cho tôi:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]

Nguồn: http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html

1
shrx