Tạo khóa ssh:
$ ssh-keygen -t rsa –P ""
Di chuyển khóa sang khóa ủy quyền:
$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory
Tạo khóa ssh:
$ ssh-keygen -t rsa –P ""
Di chuyển khóa sang khóa ủy quyền:
$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory
Câu trả lời:
bash: /home/user/.ssh/authorized_keys: No such file or directory
Một yếu tố của đường dẫn /home/user/.ssh/
không tồn tại; shell ( bash
) kiểm tra chuyển hướng ( >>
) trước khi nó thực thi lệnh ( cat
). Nếu /home/user
có tồn tại và bạn thử điều này:
cat $HOME/.ssh/id_rsa.pub >> $HOME/test_this
Bây giờ bạn sẽ nhận được:
cat: /home/user/.ssh/id_rsa.pub: No such file or directory
Vì tập tin đó không thể ở nơi đó, nếu /home/user/.ssh/
không tồn tại để bắt đầu.
Bạn đang làm theo một số hướng dẫn có thể đã bỏ qua một số bit. Để tạo thư mục:
mkdir $HOME/.ssh
chmod 700 $HOME/.ssh
Tuy nhiên, id_rsa.pub
sẽ không có ở đó. Nó sẽ là bất cứ nơi nào bạn chạy ssh-keygen
lệnh ở nơi đầu tiên.
Hãy chắc chắn rằng bạn đã đăng nhập với tư cách là người dùng mà bạn muốn tạo khóa ssh cho lần đầu tiên (hoặc được chuẩn bị để sửa đổi các đường dẫn trong lệnh thành thư mục chính xác).
Sau đó, chỉ cần tạo thư mục:
mkdir ~/.ssh
Tạo tập tin bằng cat
lệnh bạn đã liệt kê ở trên. Sau đó, đừng quên thiết lập quyền chính xác:
chmod 400 ~/.ssh/authorized_keys
Bạn có thể muốn đảm bảo rằng thư mục .ssh cũng có quyền thích hợp.
chmod 700 ~/.ssh
Nếu có thể tôi luôn khuyến khích mọi người sử dụng công cụ dòng lệnh ssh-copy-id
.
$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine
Nếu bạn chỉ muốn sao chép khóa công khai SSH mặc định của mình sang máy chủ từ xa, bạn chỉ cần chạy lệnh sau:
$ ssh-copy-id user@remoteserver
Tôi hiển thị một ví dụ đầy đủ thực tế về cách sử dụng công cụ này trong Hỏi & Đáp này có tiêu đề: Không thể chia sẻ kết nối ssh với rsync .
Đ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/MyUserName
thay vì .ssh
thư mục. Nếu bạn để trống tên tệp, nó sẽ ghi .ssh
như mong đợi.
-f ~/.ssh/custom-key-name