tra-loi-cau-hoi-phat-trien-web.com

Làm thế nào để ssh đến máy chủ từ xa bằng khóa riêng?

Tôi có hai máy chủ. Cả hai máy chủ đều nằm trong CentOS 5.6. Tôi muốn SSH từ Máy chủ 1 đến Máy chủ 2 bằng khóa riêng tôi có (Khóa riêng OpenSSH SSH-2).

Tôi không biết làm thế nào để làm điều đó hơn unix. Nhưng những gì tôi đã làm trên windows bằng PuTTY là cung cấp khóa riêng OpenSSH của tôi cho PuTTY-gen và tạo khóa riêng ở định dạng PPK.

Tuy nhiên, tôi sẽ tạo một tập lệnh bash từ máy chủ 1 sẽ thực thi một số lệnh trên máy chủ 2 thông qua SSH.

Làm cách nào để SSH tới Máy chủ 2 bằng tệp khóa riêng của tôi từ Máy chủ 1?

82
Aivan Monceller

Bạn cần khóa công khai SSH và bạn sẽ cần khóa riêng ssh của bạn. Khóa có thể được tạo bằng ssh-keygen. Khóa riêng phải được giữ trên Máy chủ 1 và khóa chung phải được lưu trữ trên Máy chủ 2.

Điều này được mô tả đầy đủ trong trang chủ của openssh, vì vậy tôi sẽ trích dẫn rất nhiều về nó. Bạn nên đọc phần 'Xác thực'. Ngoài ra, hướng dẫn openSSH sẽ thực sự hữu ích: http://www.openssh.org/manual.html

Hãy cẩn thận với ssh vì điều này ảnh hưởng đến bảo mật của máy chủ của bạn.

Từ man ssh:

 ~/.ssh/identity
 ~/.ssh/id_dsa
 ~/.ssh/id_rsa
     Contains the private key for authentication.  These files contain
     sensitive data and should be readable by the user but not acces-
     sible by others (read/write/execute).  ssh will simply ignore a
     private key file if it is accessible by others.  It is possible
     to specify a passphrase when generating the key which will be
     used to encrypt the sensitive part of this file using 3DES.

 ~/.ssh/identity.pub
 ~/.ssh/id_dsa.pub
 ~/.ssh/id_rsa.pub
     Contains the public key for authentication.  These files are not
     sensitive and can (but need not) be readable by anyone.

Điều này có nghĩa là bạn có thể lưu trữ khóa riêng của bạn trong thư mục chính của bạn trong .ssh. Một khả năng khác là nói với ssh thông qua -i chuyển tham số để sử dụng tệp nhận dạng đặc biệt. Cũng từ man ssh:

 -i identity_file
     Selects a file from which the identity (private key) for RSA or
     DSA authentication is read.  The default is ~/.ssh/identity for
     protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro-
     tocol version 2.  Identity files may also be specified on a per-
     Host basis in the configuration file.  It is possible to have
     multiple -i options (and multiple identities specified in config-
     uration files).

Đây là cho khóa riêng. Bây giờ bạn cần giới thiệu khóa công khai của mình trên Máy chủ 2. Một lần nữa trích dẫn từ man ssh:

  ~/.ssh/authorized_keys
         Lists the public keys (RSA/DSA) that can be used for logging in
         as this user.  The format of this file is described in the
         sshd(8) manual page.  This file is not highly sensitive, but the
         recommended permissions are read/write for the user, and not
         accessible by others.

Cách dễ nhất để đạt được điều đó là sao chép tệp vào Máy chủ 2 và nối nó vào tệp ủy quyền:

scp -p your_pub_key.pub [email protected]:
ssh [email protected]
host$ cat id_dsa.pub >> ~/.ssh/authorized_keys

Việc ủy ​​quyền thông qua khóa chung phải được phép cho trình nền ssh, xem man ssh_config. Thông thường điều này có thể được thực hiện bằng cách thêm câu lệnh sau vào tệp cấu hình:

PubkeyAuthentication yes
70
echox

Tôi đã sử dụng tùy chọn ssh với -i để thêm khóa của bạn vào đây.

Nếu bạn muốn truyền arg1, arg2 bằng tệp .sh, chỉ cần chuyển nó sau tệp .sh và sử dụng khoảng trắng sử dụng để phân tách nó.

ssh -i home/avr/new.pem [email protected] "/var/www/beta/betatolive.sh mmin 30"

25
Avinash Raut

Điều đầu tiên bạn cần phải làm là đảm bảo rằng bạn đã chạy lệnh keygen để tạo các khóa:

ssh-keygen -t rsa

Sau đó sử dụng lệnh này để Đẩy phím đến máy chủ từ xa, sửa đổi nó để khớp với tên máy chủ của bạn.

cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'
18
Anubhav Singh

Nối khóa công khai (id_[rd]sa.pub) cho máy nguồn của bạn (nơi bạn đang sshing từ) đến ~/.ssh/authorized_keys tệp của máy chủ đích cho tên người dùng bạn muốn ssh vào. Nếu bạn mất khóa công khai, bạn sẽ muốn tạo một khóa mới với ssh-keygen. Sử dụng các đối số mặc định cho điều đó sẽ ổn cho hầu hết các mục đích. Nếu bạn cần hướng dẫn chi tiết hơn, có hàng ngàn hướng dẫn bạn có thể google.

8
Kevin

ssh-copy-id - sử dụng các khóa có sẵn cục bộ để ủy quyền đăng nhập trên một máy từ xa

Sử dụng ssh-copy-id trên Máy chủ 1, giả sử bạn có cặp khóa (được tạo bằng ssh-keygen):

ssh-copy-id -i ~/.ssh/id_rsa [email protected]_hostname

Bây giờ bạn có thể ssh vào Máy chủ 2 bằng ssh bằng khóa riêng

ssh -i ~/.ssh/id_rsa [email protected]_hostname

Thật vậy, nếu bạn kiểm tra cat ~/.ssh/authorized_keys trên Máy chủ 2, bạn sẽ thấy khóa chung được gắn cho bạn.

6
Sida Zhou