Làm cách nào tôi có thể tự động khởi động một đường hầm SSH -D khi đăng nhập cho proxy SOCKS?


9

Tôi biết rằng nếu tôi muốn bắt đầu một đường hầm SSH

ssh -d 9000 user@userserver

Đây là một giải pháp cho một đường hầm động được mở trên cổng 9000 cho người dùng có tên "người dùng" trên máy chủ "người dùng"

Tuy nhiên, làm cách nào tôi có thể tự động hóa quy trình này trong Ubuntu để tôi không phải mở thiết bị đầu cuối mỗi khi tôi đăng nhập và bắt đầu đường hầm? Tôi muốn trở thành SSH ngay khi tôi đăng nhập.

Tôi biết tôi có thể tạo một tệp bash nhưng tôi sẽ không phải lưu trữ mật khẩu người dùng máy chủ của mình trong bản rõ vì tôi sẽ được nhắc về nó sau lệnh ban đầu?


3
bạn có thể thiết lập khóa ssh thay vì sử dụng mật khẩu (xem pkeck.myweb.uga.edu/ssh ), nhưng cho dù thiết lập của bạn như thế nào, bạn sẽ làm tổn hại đến bảo mật nếu bạn tự động đăng nhập ...
LassePoulsen

Không chính xác về câu hỏi của bạn, nhưng tôi khuyên bạn nên thử sử dụng sshuttleđể định tuyến internet của mình thông qua SSH. Nó không giải quyết vấn đề đăng nhập không cần mật khẩu.
Oxwivi

Nếu bạn thiết lập SSH không có mật khẩu như tôi đã trả lời, sshuttlecũng có thể được tự động khởi động (lưu ý, sshuttleyêu cầu quyền quản trị viên để chạy).
Oxwivi

Câu trả lời:


9
  1. Thiết lập đăng nhập SSH không cần mật khẩu theo câu trả lời này :

    • ssh-keygen (bạn sẽ được nhắc nhập mật khẩu, để trống)

    • ssh-copy-id user@userserver (nhập mật khẩu đăng nhập SSH của bạn lần cuối cùng)

  2. Thêm một mục khởi động cho SSH:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


@Stefano, cảm ơn bạn! Một nửa số tín dụng dành cho Rinzwind và Marco, người đã khai sáng cho tôi về SSH không có mật khẩu ngay từ đầu!
Oxwivi

1

Cách sử dụng thiết lập khóa ssh, như Source Lab đã đề xuất, nhưng thiết lập khóa của bạn bằng cụm từ thông qua và đảm bảo ssh-agent đang chạy trên máy của bạn để chỉ cần nhập một lần cho mỗi phiên đăng nhập.

Có một vài lợi thế khi thực hiện theo cách đó: - Bạn có thể nhận được đăng nhập không cần mật khẩu tự động (ngoài lần khởi động / đăng nhập đầu tiên) bất cứ khi nào bạn thực hiện lệnh ssh của mình - Khóa của bạn có cụm từ thông qua nên an toàn hơn - Sử dụng khóa pub / private rất tiêu chuẩn và sẽ được hỗ trợ bởi hầu hết các cài đặt SSH Server

Để thiết lập xác thực khóa SSH:

Để sử dụng ssh-agent / móc khóa (để lưu cụm từ mật khẩu trong suốt phiên đăng nhập):

Theo như tự động hóa việc tạo đường hầm khi khởi động, một ý tưởng có thể là tạo ra một kịch bản shell nhanh để khởi động đường hầm:

~$ sudo cat <<EOF >> /usr/local/bin/start_tunnel.sh
ssh-add # ensure key is added to agent
ssh -D 9000 user@userserver # substitute real server in here (of course)
EOF
~$ chmod +x /usr/local/bin/start_tunnel.sh

Sau đó, thêm nó dưới dạng một chương trình khởi động (Hệ thống -> Tùy chọn -> Ứng dụng khởi động), dù sao cũng nên hoạt động!


Có cách nào để thực hiện việc này thông qua phần proxy mạng của cài đặt trong Ubuntu không? Có một tùy chọn để xác minh người dùng và bạn có thể nhập trước tên người dùng và mật khẩu của mình không? Chỉ trong trường hợp cài đặt của tôi thay đổi, tôi sẽ không muốn phải vào và làm lại tập tin.
dalanmiller

Tôi sợ rằng nó không hoạt động, ngay cả với autossh.
skerit


-1
sudo ssh-keygen #type Enter everywhere
sudo cat /home/root/.ssh/ id_dsa.pub >> .ssh/authorized_keys

/etc/rc.local thêm chuỗi:

echo "ssh socks 192.168.0.1:8000" ; sudo ssh -fND 192.168.0.1:8000 localhost

Xin lưu ý rằng việc thiết lập khóa ssh là dành riêng. Chấp nhận một cách mù quáng tất cả các lời nhắc mà không đọc những gì đang được thực hiện có thể làm tổn hại đến dịch vụ / hệ thống của bạn.
Braiam
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.