Tôi thường kết nối với máy chủ từ xa với
ssh user@server.com -p 11000
và sau đó cung cấp mật khẩu mỗi lần cho người dùng. Làm cách nào để tránh nhập mật khẩu mỗi lần tôi kết nối bằng ssh?
Tôi thường kết nối với máy chủ từ xa với
ssh user@server.com -p 11000
và sau đó cung cấp mật khẩu mỗi lần cho người dùng. Làm cách nào để tránh nhập mật khẩu mỗi lần tôi kết nối bằng ssh?
Câu trả lời:
Đầu tiên , đặt cái này vào ~/.ssh/config
:
Host server
HostName server.com
Port 11000
User user
Bạn sẽ có thể ssh server
, sau đó nhập mật khẩu.
Thứ hai , kiểm tra~/.ssh/
xem bạn có tập tin được đặt tên id_rsa
và id_rsa.pub
. Nếu không, bạn không có bất kỳ khóa nào được thiết lập, vì vậy bạn phải tạo một cặp bằng cách sử dụng ssh-keygen
. Bạn có thể cung cấp cho các khóa mật khẩu hoặc không. Tệp được tạo id_rsa.pub
sẽ trông như thế này:
ssh-rsa lotsofrandomtext user @ local
Ngày thứ ba , ssh đến máy chủ, tạo tập tin ~/.ssh/authorized_keys
nếu nó không tồn tại. Sau đó nối thêm nội dung ~/.ssh/id_rsa.pub
mà bạn đã tạo trước đó tại đây. Điều này có thể có nghĩa là sao chép nội dung tệp vào khay nhớ tạm của bạn, sau đó mở ~/.ssh/authorized_keys
trong trình chỉnh sửa văn bản và dán nội dung .
Hoặc, sử dụng lệnh ssh-copy-id server
(thay thế server
bằng tên trong ~/.ssh/config
). Điều này sẽ làm điều tương tự như trên. Đôi khi tôi đã thấy ssh-copy-id
bị mắc kẹt, vì vậy tôi không thực sự thích nó.
Bây giờ bạn có thể ssh chỉ với ssh server
, trừ khi bạn đã chọn bảo vệ khóa riêng của mình bằng cụm mật khẩu. Nói chung, nếu bạn không sử dụng cụm mật khẩu, bạn nên bảo vệ khóa riêng của mình bằng các cách khác (ví dụ: mã hóa toàn bộ đĩa).
Thứ tư (chỉ cần nếu bạn bảo vệ khóa riêng của mình bằng cụm mật khẩu), hãy đặt mã này vào~/.bashrc
:
start_ssh_agent() {
# Try to use an existing agent
save=~/.ssh-agent
if [[ -e "$save" ]]
then
. "$save" > /dev/null
fi
# No existing agent, start a new one
if [[ -z "$SSH_AGENT_PID" || ! -e "/proc/$SSH_AGENT_PID" ]]
then
ssh-agent > "$save"
. "$save" > /dev/null
ssh-add
fi
}
start_ssh_agent
Với điều này, bạn sẽ chỉ cần nhập cụm mật khẩu một lần cho mỗi lần khởi động máy tính.
User user
dòng vào ~/.ssh/config
.
Chuyển sang xác thực dựa trên khóa .
ssh -P 11000
tôi đã có thể sao chép với ssh. Cảm ơn nhiều.
Để bổ sung cho câu trả lời của phunehehe, hãy xem Hướng dẫn móc khóa Gentoo Linux để biết hướng dẫn về móc khóa . móc khóa cũng sử dụng ssh-agent . Trình nền ssh-agent làm cho cụm mật khẩu khả dụng (nó không khả dụng khi trình nền ssh-agent chết) nhưng móc khóa reuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in
, để trích dẫn hướng dẫn.