Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình Bash

Cách kích hoạt đăng nhập SSH không mật khẩu:3 bước đơn giản với ssh-keygen &ssh-copy-id

Cách kích hoạt đăng nhập SSH không mật khẩu:3 bước đơn giản với ssh-keygen &ssh-copy-id Bạn có thể đăng nhập vào máy chủ Linux từ xa mà không cần nhập mật khẩu bằng 3 bước đơn giản bằng cách sử dụng ssky-keygen và ssh-copy-id như được giải thích trong bài viết này.

ssh-keygen tạo khóa chung và khóa riêng. ssh-copy-id sao chép khóa chung của máy chủ cục bộ vào tệp ủy quyền của máy chủ từ xa. ssh-copy-id cũng chỉ định quyền thích hợp cho trang chủ của máy chủ từ xa, ~/.ssh và ~/.ssh/authorized_keys.

Bài viết này cũng giải thích 3 điều khó chịu nhỏ khi sử dụng ssh-copy-id và cách sử dụng ssh-copy-id cùng với ssh-agent.

Bước 1:Tạo khóa chung và khóa riêng bằng ssh-key-gen trên local-host

jsmith@local-host$ [Note: You are on local-host here]
jsmith@local-host$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key]
Enter passphrase (empty for no passphrase): [Press enter key]
Enter same passphrase again: [Pess enter key]
Your identification has been saved in /home/jsmith/.ssh/id_rsa.
Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
The key fingerprint is:
33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 jsmith@local-host

Bước 2:Sao chép khóa chung sang remote-host bằng ssh-copy-id

jsmith@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
jsmith@remote-host's password:
Now try logging into the machine, with "ssh 'remote-host'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.

Lưu ý: ssh-copy-id nối thêm các khóa tới .ssh/authorized_key của máy chủ từ xa.

Bước 3:Đăng nhập remote-host không cần nhập mật khẩu

jsmith@local-host$ ssh remote-host
Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2
[Note: SSH did not ask for password.]
jsmith@remote-host$ [Note: You are on remote-host here]


3 bước đơn giản trên sẽ giúp bạn hoàn thành công việc trong hầu hết các trường hợp.

Chúng tôi cũng đã thảo luận chi tiết trước đó về việc thực hiện SSH và SCP từ openSSH sang openSSH mà không cần nhập mật khẩu.

Nếu bạn đang sử dụng SSH2, chúng tôi đã thảo luận trước đó về cách thực hiện SSH và SCP mà không cần mật khẩu từ SSH2 đến SSH2, từ OpenSSH đến SSH2 và từ SSH2 đến OpenSSH.

Sử dụng ssh-copy-id cùng với ssh-add/ssh-agent

Khi không có giá trị nào được chuyển cho tùy chọn -i và Nếu ~/.ssh/identity.pub không có sẵn, ssh-copy-id sẽ hiển thị thông báo lỗi sau.

jsmith@local-host$ ssh-copy-id -i remote-host
/usr/bin/ssh-copy-id: ERROR: No identities found


Nếu bạn đã tải khóa vào ssh-agent sử dụng ssh-add , sau đó ssh-copy-id sẽ lấy chìa khóa từ ssh-agent để sao chép vào máy chủ từ xa. tức là nó sao chép các khóa được cung cấp bởi ssh-add -L lệnh đến máy chủ từ xa, khi bạn không chuyển option -i tới ssh-copy-id .

jsmith@local-host$ ssh-agent $SHELL

jsmith@local-host$ ssh-add -L
The agent has no identities.
jsmith@local-host$ ssh-add
Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa)
jsmith@local-host$ ssh-add -L
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsJIEILxftj8aSxMa3d8t6JvM79DyBV
aHrtPhTYpq7kIEMUNzApnyxsHpH1tQ/Ow== /home/jsmith/.ssh/id_rsa
jsmith@local-host$ ssh-copy-id -i remote-host
jsmith@remote-host's password:
Now try logging into the machine, with "ssh 'remote-host'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[Note: This has added the key displayed by ssh-add -L]

Ba điều khó chịu nhỏ của ssh-copy-id

Sau đây là một số phiền toái nhỏ của ssh-copy-id.

  1. Khóa công khai mặc định: ssh-copy-id sử dụng ~/.ssh/identity.pub làm tệp khóa chung mặc định (tức là khi không có giá trị nào được chuyển cho option -i ). Thay vào đó, tôi ước nó sử dụng id_dsa.pub hoặc id_rsa.pub hoặc Identity.pub làm khóa mặc định. tức là nếu bất kỳ cái nào trong số chúng tồn tại, nó sẽ sao chép nó vào máy chủ từ xa. Nếu có hai hoặc ba trong số chúng tồn tại, nó sẽ sao chép Identity.pub làm mặc định.
  2. Người đại diện không có danh tính: Khi ssh-agent đang chạy và ssh-add -L trả về “Tác nhân không có danh tính” (tức là không có khóa nào được thêm vào ssh-agent), ssh-copy-id vẫn sẽ sao chép thông báo “Tác nhân không có danh tính” vào mục nhập ủy quyền_keys của máy chủ từ xa.
  3. Mục nhập trùng lặp trong ủy quyền: Tôi muốn ssh-copy-id xác thực mục nhập trùng lặp trên ủy quyền của máy chủ từ xa. Nếu bạn thực thi ssh-copy-id nhiều lần trên máy chủ cục bộ, nó sẽ tiếp tục thêm cùng một khóa vào tệp ủy quyền của máy chủ từ xa mà không kiểm tra các bản sao. Ngay cả với các mục trùng lặp, mọi thứ vẫn hoạt động như mong đợi. Tuy nhiên, tôi muốn tệp ủy quyền của mình không bị lộn xộn.


Nếu bạn thích bài viết này, vui lòng đánh dấu nó vào NgonVấp ngã .