SSH!
SSH là lệnh thần - Tôi nghĩ đó là lệnh có giá trị nhất để học. Các tùy chọn có thể khá khó khăn, nhưng có vẻ như tôi liên tục học cách sử dụng các tùy chọn dòng lệnh mới cho SSH mà tôi không bao giờ nghĩ là cần thiết. Tôi có thể đã sử dụng tất cả chúng tại thời điểm này.
Bạn càng sử dụng nó, bạn càng tìm hiểu về nó. Bạn có thể sử dụng nó để làm một số điều TUYỆT VỜI.
Lưu ý: TẤT CẢ những điều này có thể thực hiện được từ xa mà không cần thiết lập trên máy chủ của bạn ngoại trừ để máy chủ ssh chạy.
Gắn hệ thống tập tin qua internet
tìm kiếm trên mạng cho SSHFS
Chuyển tiếp lệnh .
Giao thức SVN + SSH là Subversion từ máy khách từ xa đến máy chủ KHÔNG CÓ DEAMON chạy trên nó! Lệnh SVN khởi động máy chủ thông qua vỏ ssh và chuyển thông tin qua lại thông qua đường ống hiện có. Chương trình rsync cũng làm điều tương tự, chạy với một máy chủ không có rsync deamon bằng cách tự khởi động thông qua SSH. Thật dễ dàng để viết các tệp bash của riêng bạn để thực hiện các thủ thuật tương tự.
Xích để vượt qua tường lửa
Tôi sử dụng tất cả thời gian để nhảy qua máy chủ linux của tôi ở nhà với máy mac của tôi.
Chuyển tiếp cổng:
Có vẻ chỉ hữu ích ở mức độ vừa phải cho đến khi bạn nhận ra rằng bạn có thể thoát qua tường lửa gia đình và định cấu hình bộ định tuyến tại nhà từ nơi làm việc như thể bạn đang làm như vậy từ trong mạng gia đình của mình).
Chuyển tiếp yêu cầu X:
Đây là một trong những tuyệt vời. Có hoặc không có máy chủ X chạy trên hệ thống từ xa, bạn có thể chạy chương trình x-windows và cửa sổ sẽ xuất hiện trên màn hình cục bộ của bạn. Chỉ cần sử dụng công tắc -X, thế thôi!
Vì bạn không cần phải có máy chủ X chạy trên máy chủ từ xa, nên tác động của CPU đến máy chủ của bạn là tối thiểu, bạn có thể có máy chủ TINY Linux phục vụ các ứng dụng lớn cho PC trò chơi mạnh mẽ của bạn chạy Windows và cygwin / X.
Tất nhiên VI và EMACS hoạt động trên SSH, nhưng khi tôi chạy ở nhà, đôi khi tôi muốn nhiều hơn nữa. Tôi sử dụng ssh -X để bắt đầu một bản sao của Eclipse! Nếu máy chủ của bạn mạnh hơn máy tính xách tay của bạn, bạn đã có GUI ở ngay trên máy tính xách tay của mình, nhưng quá trình biên dịch được thực hiện trên máy chủ của bạn, vì vậy đừng lo lắng về tải hệ thống.
Chạy trong tập tin bó
(có nghĩa là chạy một tệp bó cục bộ "thực hiện công cụ" trên các hệ thống khác):
Hai thứ kết hợp để làm cho cái này mát mẻ. Một là bạn có thể loại bỏ lời nhắc mật khẩu bằng cách sử dụng các khóa mã hóa (an toàn hơn). Thứ hai là bạn có thể chỉ định một lệnh trên SSH CLI. Tôi đã sử dụng điều này theo một số cách thú vị - Giống như khi một trình biên dịch bị lỗi trên máy chủ từ xa, tôi sẽ cho nó SSH vào máy tính của mình và phát một tệp âm thanh).
Hãy nhớ rằng bạn có thể chuyển hướng đầu ra từ lệnh từ xa và sử dụng nó trong tệp bó cục bộ của bạn, do đó bạn cũng có thể điều khiển cục bộ một trình biên dịch chạy trên máy chủ của mình.
Được xây dựng trong Mac
Cả máy chủ và máy khách đều được tích hợp vào cả mac và linux. Trong trường hợp của Mac và Ubuntu, việc kích hoạt máy chủ cũng đơn giản như tìm đúng hộp kiểm.
Trên PC cài đặt cygwin hoặc cygwin / X (cygwin / X sẽ cho phép bạn chuyển tiếp đầu ra cửa sổ x từ máy Linux của bạn sang PC Windows - nó cài đặt máy chủ X)
Mẹo / tập tin cấu hình quan trọng
Không bao giờ sử dụng cổng 22 trên tường lửa của bạn. Bạn sẽ nhận được rất nhiều nỗ lực hack, nó chỉ không xứng đáng. Chỉ cần tường lửa của bạn chuyển tiếp một cổng khác đến máy chủ của bạn.
Có nhiều tùy chọn cấu hình cho phép bạn đơn giản hóa đáng kể các lệnh ssh của mình. Đây là một ví dụ của tôi tại nơi làm việc:
Host home
hostname billshome.hopto.org
Port=12345
user=bill
LocalForward=localhost:1025 mac:22
Khi tôi gõ "ssh home" (không có gì khác), nó hoạt động như thể tôi đã gõ:
ssh -p 12345 bill@billshome.hopto.org
và sau đó chuyển tiếp cổng địa phương 1025 sang hệ thống "mac" của tôi ở nhà. Lý do cho điều này là tôi có một mục khác trong tệp của mình:
Host mac
hostname localhost
port=1025
để một khi tôi đã thực hiện "ssh home" và vẫn mở cửa sổ, tôi có thể gõ "ssh mac" và máy tính tại đây sẽ thực sự cố gắng kết nối với cổng 1025 của chính nó đã được chuyển tiếp tới "mac: 22 "bằng lệnh khác, vì vậy nó sẽ kết nối với máy Mac của tôi ở nhà thông qua tường lửa.
Chỉnh sửa - kịch bản tuyệt vời!
Tôi đã đào một kịch bản cũ mà tôi yêu thích - phải quay lại và đăng nó cho bất cứ ai ở đây có thể quan tâm. Kịch bản được gọi là "authMe"
#!/bin/bash
if [ ! -f ~/.ssh/id_dsa.pub ]
then
echo 'id_dsa.pub does not exist, creating'
ssh-keygen -tdsa
fi
ssh $1 'cat >>.ssh/authorized_keys' <~/.ssh/id_dsa.pub
Nếu bạn có tập lệnh này trong thư mục chính của bạn và có một máy chủ bạn có thể kết nối với (thông qua ssh), thì bạn có thể nhập "./authMe hostName".
Nếu cần thiết, nó sẽ tạo ra một cặp khóa công khai / riêng tư cho bạn, sau đó nó sẽ chuyển sang máy khác và sao chép khóa chung của bạn (lệnh ssh sẽ nhắc bạn nhập mật khẩu ...)
Sau này, lệnh SSH không nên yêu cầu mật khẩu của bạn nữa khi gắn vào hệ thống từ xa đó, nó sẽ sử dụng khóa công khai / riêng tư.
Nếu máy tính từ xa của bạn không phải lúc nào cũng an toàn, bạn nên xem xét việc đặt "cụm mật khẩu" khi được nhắc.
Bạn cũng có thể muốn định cấu hình máy chủ ssh ở phía xa để không cho phép mật khẩu văn bản (chỉ các phím) để bảo mật bổ sung.