bash: /home/user/.ssh/authorized_keys: Không có tệp hoặc thư mục như vậy


30

Tạo khóa ssh:
Lệnh:

ssh-keygen -t rsa –P ""

Di chuyển khóa sang khóa ủy quyền:
Lệnh:

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory

1
~/.ssh/authorized_keyslà khóa của các máy tính khác mà bạn đã kết nối / tin cậy, không phải khóa riêng của bạn .
saiarcot895

Một số ứng dụng yêu cầu ssh không mật khẩu cho máy của chính mình.
Nehal J Wani

Vui lòng không đăng cùng một câu hỏi trên nhiều trang web của mạng Stack Exchange.
terdon

Tại sao bạn cần tin tưởng vào chìa khóa bạn sở hữu? Chính xác thì bạn đang cố gắng làm gì?
Braiam

Câu trả lời:


74

Bạn phải tạo .sshthư mục và authorized_keystập tin lần đầu tiên.

  1. Tạo .sshthư mục:

    mkdir ~/.ssh
    
  2. Đặt quyền:

    chmod 700 ~/.ssh
    
  3. Tạo authorized_keystập tin:

    touch ~/.ssh/authorized_keys
    
  4. Đặt quyền:

    chmod 600 ~/.ssh/authorized_keys
    

Các quyền là quan trọng! Nó sẽ không hoạt động mà không có sự cho phép đúng!

Bây giờ bạn có thể thêm khóa công khai vào authorized_keystệp:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Bạn phải thêm khóa chung của máy tính vào authorized_keystệp của máy tính bạn muốn truy cập bằng Khóa SSH !


Như terdon đã đề cập, bạn cũng có thể sử dụng lệnh này:

ssh-copy-id user@host

Điều này sẽ đặt id_rsa.pub(trong ~/.sshthư mục của bạn ) vào authorized_keystệp của máy tính từ xa , tạo .sshthư mục và authorized_keystệp với quyền phù hợp nếu cần.


5
Trong mọi trường hợp, bạn không muốn chỉ catnó, đó là những gì ssh-copy-iddành cho.
terdon

1
Wow, tuyệt, tôi đã thêm nó.
Louis Matthijssen

@LouisMatthijssen Tôi đã sao chép khóa vào máy chủ từ xa. Làm cách nào tôi có thể xác nhận rằng khóa chung được thêm vào trong ủy quyền.
Aman

2

Trong trường hợp bạn đã được gửi khóa công khai trong email để cài đặt đến máy chủ từ xa:

1) SSH vào máy chủ. Tôi đã sử dụng PuTTY trên Windows.

2) Cài đặt khóa:

mkdir ~/.ssh
chmod 700 ~/.ssh
vi ~/.ssh/authorized_keys

Hãy cẩn thận để sao chép chính xác khóa và dán nó vào một dòng mới trong cửa sổ soạn thảo. Xác nhận rằng nó chiếm một dòng duy nhất và lưu.

chmod 600 ~/.ssh/authorized_keys

2

Vì tôi không có đủ danh tiếng, tôi sẽ thêm điều này vào đây. Ngoài câu trả lời của Louis Matthijssen nếu bạn vẫn không thể đăng nhập thông qua ssh với tư cách là người dùng mà bạn đã tạo, như

ssh username@host

thì điều này có thể là do không có sự cho phép của chủ sở hữu mà bạn phải thêm vào thư mục /home/username/.ssh của bạn. Tôi đã có cùng một vấn đề và bạn có thể cho phép như:

chown -R username:username /home/username/.ssh

Điều này có thể xảy ra đơn giản vì bạn đang tạo thư mục và đặt quyền là root , nhưng không phải là tên người dùng bạn muốn truy cập máy chủ.

Hy vọng điều này sẽ giúp được ai đó.


0

thử

 touch $HOME/.ssh/authorized_keys

để tạo tập tin trống với quyền của người dùng đó.

Tập tin này được tạo khi bạn truy cập máy chủ từ xa đầu tiên với người dùng đó.


0

Điều này cũng có thể thất bại nếu, khi tạo khóa với ssh-keygen, bạn đặt cho nó một tên tệp. Tôi đã nhập một số tên my-ssh-file-name, và nó đã viết chìa khóa /Users/MyUserNamethay vì .sshthư mục. Nếu bạn để trống tên tệp, nó sẽ ghi vào .sshnhư mong đợi.

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.