Đây là ssh lệnh có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
ssh - OpenSSH SSH client (chương trình đăng nhập từ xa)
SYNOPSIS
ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b liên kết_địa chỉ] [-c mật mã_spec] [-D [liên kết_địa chỉ:]cổng]
[-E log_file] [-e Escape_char] [-F tập tin cấu hình] [-I pkcs11] [-i ID_tệp]
[-L địa chỉ] [-l tên đăng nhập] [-m mac_spec] [-O ctl_cmd] [-o tùy chọn] [-p cổng]
[-Q truy vấn_option] [-R địa chỉ] [-S ctl_path] [-W chủ nhà:cổng] [-w local_tun[:điều khiển từ xa]]
[người sử dụng@]hostname [lệnh]
MÔ TẢ
ssh (SSH client) là một chương trình để đăng nhập vào một máy từ xa và thực hiện các lệnh
trên một máy điều khiển từ xa. Nó nhằm cung cấp thông tin liên lạc được mã hóa an toàn giữa hai
máy chủ không đáng tin cậy trên một mạng không an toàn. Kết nối X11, cổng TCP tùy ý và
Các ổ cắm miền UNIX cũng có thể được chuyển tiếp qua kênh an toàn.
ssh kết nối và đăng nhập vào hostname (với tùy chọn người sử dụng Tên). Người dùng phải
chứng minh danh tính của mình với máy từ xa bằng một trong số các phương pháp (xem bên dưới).
If lệnh được chỉ định, nó được thực thi trên máy chủ từ xa thay vì một trình bao đăng nhập.
Các tùy chọn như sau:
-1 Lực lượng ssh chỉ để thử phiên bản giao thức 1.
-2 Lực lượng ssh chỉ để thử phiên bản giao thức 2.
-4 Lực lượng ssh chỉ sử dụng địa chỉ IPv4.
-6 Lực lượng ssh chỉ sử dụng địa chỉ IPv6.
-A Cho phép chuyển tiếp kết nối tác nhân xác thực. Điều này cũng có thể được
được chỉ định trên cơ sở từng máy chủ trong tệp cấu hình.
Chuyển tiếp đại lý nên được kích hoạt một cách thận trọng. Người dùng có khả năng bỏ qua
quyền tệp trên máy chủ từ xa (đối với ổ cắm miền UNIX của tác nhân) có thể truy cập
đại lý địa phương thông qua kết nối chuyển tiếp. Kẻ tấn công không thể lấy được chìa khóa
vật liệu từ tác nhân, tuy nhiên họ có thể thực hiện các thao tác trên các phím cho phép
chúng để xác thực bằng cách sử dụng danh tính được tải vào tác nhân.
-a Tắt chuyển tiếp kết nối tác nhân xác thực.
-b liên kết_địa chỉ
Sử dụng liên kết_địa chỉ trên máy cục bộ làm địa chỉ nguồn của kết nối. Chỉ một
hữu ích trên các hệ thống có nhiều địa chỉ.
-C Yêu cầu nén tất cả dữ liệu (bao gồm stdin, stdout, stderr và dữ liệu cho
chuyển tiếp X11, TCP và kết nối miền UNIX). Thuật toán nén là
cùng được sử dụng bởi gzip(1), và "mức độ" có thể được kiểm soát bởi NénLevel
tùy chọn cho phiên bản giao thức 1. Nén được mong muốn trên các dòng modem và các
kết nối chậm, nhưng sẽ chỉ làm chậm mọi thứ trên mạng nhanh. Mặc định
giá trị có thể được đặt trên cơ sở từng máy chủ trong tệp cấu hình; xem
Nén tùy chọn.
-c mật mã_spec
Chọn thông số kỹ thuật mật mã để mã hóa phiên.
Phiên bản giao thức 1 cho phép đặc tả một mật mã duy nhất. Các giá trị được hỗ trợ
là “3des”, “blowfish” và “des”. Đối với phiên bản giao thức 2, mật mã_spec là một dấu phẩy-
danh sách mật mã riêng biệt được liệt kê theo thứ tự ưu tiên. Xem Mật mã từ khóa trong
ssh_config(5) để biết thêm thông tin.
-D [liên kết_địa chỉ:]cổng
Chỉ định chuyển tiếp cổng cấp ứng dụng “động” cục bộ. Điều này hoạt động bởi
phân bổ một ổ cắm để nghe cổng về phía địa phương, tùy chọn ràng buộc với
quy định liên kết_địa chỉ. Bất cứ khi nào kết nối được thực hiện với cổng này, kết nối
được chuyển tiếp qua kênh bảo mật và giao thức ứng dụng sau đó được sử dụng để
xác định nơi kết nối từ máy tính từ xa. Hiện tại, SOCKS4 và
Các giao thức SOCKS5 được hỗ trợ và ssh sẽ hoạt động như một máy chủ SOCKS. Chỉ root mới có thể
chuyển tiếp các cổng đặc quyền. Chuyển tiếp cổng động cũng có thể được chỉ định trong
tập tin cấu hình.
Địa chỉ IPv6 có thể được chỉ định bằng cách đặt địa chỉ trong dấu ngoặc vuông. Chỉ một
superuser có thể chuyển tiếp các cổng đặc quyền. Theo mặc định, cổng cục bộ được ràng buộc trong
phù hợp với Cổng vào thiết lập. Tuy nhiên, một liên kết_địa chỉ có lẽ
được sử dụng để liên kết kết nối với một địa chỉ cụ thể. Các liên kết_địa chỉ của "localhost"
cho biết rằng cổng lắng nghe chỉ được sử dụng cục bộ, trong khi trống
địa chỉ hoặc '*' cho biết rằng cổng phải có sẵn từ tất cả các giao diện.
-E log_file
Nối nhật ký gỡ lỗi vào log_file thay vì lỗi tiêu chuẩn.
-e Escape_char
Đặt ký tự thoát cho các phiên bằng pty (mặc định: '~'). Lối thoát
ký tự chỉ được nhận dạng ở đầu dòng. Nhân vật trốn thoát
theo sau là dấu chấm ('.') đóng kết nối; tiếp theo là control-Z tạm dừng
sự liên quan; và theo sau chính nó sẽ gửi ký tự thoát một lần. Đặt
ký tự “none” vô hiệu hóa mọi lần thoát và làm cho phiên hoàn toàn trong suốt.
-F tập tin cấu hình
Chỉ định một tệp cấu hình thay thế cho mỗi người dùng. Nếu một tệp cấu hình là
được đưa ra trên dòng lệnh, tệp cấu hình toàn hệ thống (/ etc / ssh / ssh_config)
sẽ bị bỏ qua. Mặc định cho tệp cấu hình cho mỗi người dùng là ~ / .ssh / config.
-f yêu cầu ssh để chuyển sang chế độ nền ngay trước khi thực hiện lệnh. Điều này rất hữu ích nếu
ssh sẽ yêu cầu mật khẩu hoặc cụm mật khẩu, nhưng người dùng muốn nó trong
lai lịch. Điều này nghĩa là -n. Cách được khuyến nghị để khởi động chương trình X11 từ xa
trang web với một cái gì đó giống như ssh -f chủ nhà thuật ngữ x.
Nếu ThoátVề phía trướcThất bại tùy chọn cấu hình được đặt thành “có”, sau đó là một ứng dụng khách
bắt đầu với -f sẽ đợi tất cả chuyển tiếp cổng từ xa thành công
được thiết lập trước khi đặt nó vào nền.
-G Nguyên nhân ssh để in cấu hình của nó sau khi đánh giá Máy chủ và Trận đấu khối và
lối thoát.
-g Cho phép các máy chủ từ xa kết nối với các cổng được chuyển tiếp cục bộ. Nếu được sử dụng trên một bộ ghép kênh
kết nối, sau đó tùy chọn này phải được chỉ định trên quy trình chính.
-I pkcs11
Chỉ định thư viện được chia sẻ PKCS # 11 ssh nên sử dụng để giao tiếp với PKCS # 11
mã thông báo cung cấp khóa RSA riêng tư của người dùng.
-i ID_tệp
Chọn một tệp mà từ đó danh tính (khóa riêng) để xác thực khóa công khai
được đọc. Mặc định là ~ / .ssh / danh tính cho phiên bản giao thức 1 và ~ / .ssh / id_dsa,
~ / .ssh / id_ecdsa, ~ / .ssh / id_ed25519 và ~ / .ssh / id_rsa cho phiên bản giao thức 2.
Tệp nhận dạng cũng có thể được chỉ định trên cơ sở từng máy chủ trong tệp cấu hình.
Có thể có nhiều -i tùy chọn (và nhiều danh tính được chỉ định trong
tệp cấu hình). Nếu không có chứng chỉ nào được chỉ định rõ ràng bởi
Giấy chứng nhận chỉ thị, ssh cũng sẽ cố gắng tải thông tin chứng chỉ từ
tên tệp có được bằng cách thêm vào -cert.pub đến tên tệp nhận dạng.
-K Cho phép xác thực dựa trên GSSAPI và chuyển tiếp (ủy quyền) GSSAPI
thông tin đăng nhập vào máy chủ.
-k Tắt chuyển tiếp (ủy quyền) thông tin đăng nhập GSSAPI tới máy chủ.
-L [liên kết_địa chỉ:]cổng:chủ nhà:tổ cổng
-L [liên kết_địa chỉ:]cổng:remote_socket
-L local_socket:chủ nhà:tổ cổng
-L local_socket:remote_socket
Chỉ định rằng các kết nối đến cổng TCP đã cho hoặc ổ cắm Unix trên cục bộ
(máy khách) máy chủ phải được chuyển tiếp đến máy chủ và cổng nhất định, hoặc ổ cắm Unix, trên
phía xa. Điều này hoạt động bằng cách phân bổ một ổ cắm để lắng nghe một TCP cổng on
phía cục bộ, tùy chọn ràng buộc với liên kết_địa chỉhoặc tới một ổ cắm Unix.
Bất cứ khi nào kết nối được thực hiện với cổng hoặc ổ cắm cục bộ, kết nối đó sẽ
được chuyển tiếp qua kênh an toàn và kết nối được thực hiện với chủ nhà cổng
tổ cổnghoặc ổ cắm Unix remote_socket, từ máy từ xa.
Chuyển tiếp cổng cũng có thể được chỉ định trong tệp cấu hình. Chỉ
superuser có thể chuyển tiếp các cổng đặc quyền. Địa chỉ IPv6 có thể được chỉ định bởi
đặt địa chỉ trong dấu ngoặc vuông.
Theo mặc định, cổng cục bộ được ràng buộc theo Cổng vào thiết lập.
Tuy nhiên, một liên kết_địa chỉ có thể được sử dụng để liên kết kết nối với một
Địa chỉ. Các liên kết_địa chỉ của "localhost" cho biết rằng cổng lắng nghe bị ràng buộc
chỉ để sử dụng cục bộ, trong khi địa chỉ trống hoặc '*' chỉ ra rằng cổng phải là
có sẵn từ tất cả các giao diện.
-l tên đăng nhập
Chỉ định người dùng đăng nhập như trên máy từ xa. Điều này cũng có thể được chỉ định
trên cơ sở từng máy chủ trong tệp cấu hình.
-M Đặt ssh khách hàng ở chế độ "chính" để chia sẻ kết nối. Nhiều -M
lựa chọn địa điểm ssh sang chế độ "chính" với yêu cầu xác nhận trước nô lệ
kết nối được chấp nhận. Tham khảo mô tả của Kiểm soátMaster in
ssh_config(5) để biết chi tiết.
-m mac_spec
Danh sách các thuật toán MAC (mã xác thực tin nhắn) được phân tách bằng dấu phẩy, được chỉ định trong
thứ tự ưu tiên. Xem MAC từ khóa để biết thêm thông tin.
-N Không thực hiện lệnh từ xa. Điều này rất hữu ích cho các cổng chuyển tiếp.
-n Chuyển hướng stdin từ / dev / null (thực ra, ngăn việc đọc stdin). Điêu nay phải
được sử dụng khi ssh được chạy ở chế độ nền. Một thủ thuật phổ biến là sử dụng điều này để chạy X11
chương trình trên một máy từ xa. Ví dụ, ssh -n shadow.cs.hut.fi emacs & sẽ
bắt đầu một emacs trên shadow.cs.hut.fi và kết nối X11 sẽ tự động
được chuyển tiếp qua một kênh được mã hóa. Các ssh chương trình sẽ được đặt ở chế độ nền.
(Điều này không hoạt động nếu ssh cần yêu cầu mật khẩu hoặc cụm mật khẩu; cũng xem
-f Tùy chọn.)
-O ctl_cmd
Kiểm soát quá trình tổng thể ghép kênh kết nối đang hoạt động. Khi mà -O Tùy chọn là
được chỉ định, ctl_cmd đối số được diễn giải và chuyển tới quy trình chính.
Các lệnh hợp lệ là: “kiểm tra” (kiểm tra xem quy trình chính đang chạy), “chuyển tiếp”
(yêu cầu chuyển tiếp mà không thực hiện lệnh), “hủy bỏ” (hủy chuyển tiếp),
“Exit” (yêu cầu cái chính thoát ra) và “dừng lại” (yêu cầu cái chính dừng lại
chấp nhận các yêu cầu ghép kênh khác).
-o tùy chọn
Có thể được sử dụng để cung cấp các tùy chọn ở định dạng được sử dụng trong tệp cấu hình. Đây là
hữu ích để chỉ định các tùy chọn không có cờ dòng lệnh riêng. Vì
chi tiết đầy đủ về các tùy chọn được liệt kê bên dưới và các giá trị có thể có của chúng, hãy xem
ssh_config(5).
AddKeysToAgent
Địa chỉGia đình
Chế độ hàng loạt
Địa chỉ ràng buộc
Tên miền chuẩn
CanonicalizeDự phòngLocal
CanonicalizeTên máy chủ
CanonicalizeMaxDots
Canonicalize Đã gửiCNAMEs
Giấy chứng nhận
Thử tháchPhản hồiXác thực
Kiểm tra máy chủ IP
mật mã
Mật mã
ClearAllChuyển tiếp
Nén
NénLevel
Nỗ lực kết nối
Thời gian chờ kết nối
Kiểm soátMaster
Đường dẫn điều khiển
Kiểm soátPersist
DynamicForward
ThoátChar
ThoátVề phía trướcThất bại
Dấu vân tay
Đại lý chuyển tiếp
Chuyển tiếpX11
Chuyển tiếpX11Thời gian chờ
ForwardX11T Trusted
Cổng vào
GlobalKnownhostsFile
Xác thực GSSAPIA
Chứng chỉ đại biểu GSSAPI
Máy chủ băm đã biết
Máy chủ
Xác thực dựa trên máy chủ
Loại khóa dựa trên máy chủ
HostKeyAlgorithm
HostKeyBí danh
Tên máy chủ
tập tin nhận dạng
Danh tínhChỉ
IPQoS
KbdInteractiveXác thực
KbdThiết Bị Tương Tác
Các thuật toán Kex
Lệnh cục bộ
chuyển tiếp cục bộ
Mức đăng nhập
MAC
Trận đấu
NoHostAuthenticationForLocalhost
Số Của Mật KhẩuNhắc nhở
Xác thực mật khẩu
Giấy PhépĐịa PhươngLệnh
Nhà cung cấp PKCS11
Hải cảng
Xác thực ưa thích
Nghị định thư
Lệnh Proxy
ProxySử dụngFdpass
PubkeyAcceptedKeyTypes
PubkeyXác thực
Giới hạn khóa lại
Chuyển tiếp từ xa
Yêu cầuTTY
RhostsRSAA xác thực
Xác thực RSAA
GửiEnv
Máy chủAliveInterval
Máy chủ còn sốngCountMax
SuốiLocalBindMask
StreamLocalBindUnlink
Kiểm tra nghiêm ngặt
TCPKeepAlive
Tunnel
thiết bị đường hầm
Cập nhậtHostKeys
Sử dụngPrivilegedPort
người sử dang
Tệp người dùng đã biết
Xác minhHostKeyDNS
VisualhostKey
XAuthVị trí
-p cổng
Cổng để kết nối trên máy chủ từ xa. Điều này có thể được chỉ định trên cơ sở từng máy chủ lưu trữ trong
tệp cấu hình.
-Q truy vấn_option
Truy vấn ssh cho các thuật toán được hỗ trợ cho phiên bản được chỉ định 2.
các tính năng là: vô giá trị (mật mã đối xứng được hỗ trợ), mật mã-auth (đối xứng được hỗ trợ
mật mã hỗ trợ mã hóa được xác thực), mac (tính toàn vẹn của tin nhắn được hỗ trợ
mã), KEX (thuật toán trao đổi khóa), chính (các loại khóa), chứng chỉ khóa (khóa chứng chỉ
loại), chìa khóa đồng bằng (các loại khóa không phải chứng chỉ) và phiên bản giao thức (hỗ trợ SSH
phiên bản giao thức).
-q Chế độ yên lặng. Khiến hầu hết các thông báo cảnh báo và chẩn đoán bị chặn.
-R [liên kết_địa chỉ:]cổng:chủ nhà:tổ cổng
-R [liên kết_địa chỉ:]cổng:local_socket
-R remote_socket:chủ nhà:tổ cổng
-R remote_socket:local_socket
Chỉ định rằng các kết nối với cổng TCP hoặc ổ cắm Unix đã cho trên điều khiển từ xa
(máy chủ) máy chủ lưu trữ phải được chuyển tiếp đến máy chủ lưu trữ và cổng nhất định, hoặc ổ cắm Unix, trên
phía địa phương. Điều này hoạt động bằng cách phân bổ một ổ cắm để lắng nghe một TCP cổng hoặc
một ổ cắm Unix ở phía điều khiển từ xa. Bất cứ khi nào kết nối được thực hiện với cổng này hoặc
Ổ cắm Unix, kết nối được chuyển tiếp qua kênh an toàn và kết nối
được làm cho một trong hai chủ nhà cổng tổ cổng, hoặc là local_socket, từ máy cục bộ.
Chuyển tiếp cổng cũng có thể được chỉ định trong tệp cấu hình. Các cổng đặc quyền
chỉ có thể được chuyển tiếp khi đăng nhập với quyền root trên máy từ xa. Địa chỉ IPv6
có thể được chỉ định bằng cách đặt địa chỉ trong dấu ngoặc vuông.
Theo mặc định, các ổ cắm lắng nghe TCP trên máy chủ sẽ bị ràng buộc với vòng lặp
chỉ giao diện. Điều này có thể bị ghi đè bằng cách chỉ định một liên kết_địa chỉ. Trống rỗng
liên kết_địa chỉ, hoặc địa chỉ '*', cho biết rằng ổ cắm từ xa sẽ nghe
tất cả các giao diện. Chỉ định điều khiển từ xa liên kết_địa chỉ sẽ chỉ thành công nếu máy chủ của
Cổng vào tùy chọn được bật (xem sshd_config(5)).
Nếu cổng đối số là '0', cổng lắng nghe sẽ được cấp phát động trên
máy chủ và báo cáo cho máy khách tại thời điểm chạy. Khi được sử dụng cùng với -O phía trước
cổng được cấp phát sẽ được in ra đầu ra tiêu chuẩn.
-S ctl_path
Chỉ định vị trí của ổ cắm điều khiển để chia sẻ kết nối hoặc chuỗi
"None" để tắt chia sẻ kết nối. Tham khảo mô tả của Đường dẫn điều khiển và
Kiểm soátMaster in ssh_config(5) để biết chi tiết.
-s Có thể được sử dụng để yêu cầu gọi một hệ thống con trên hệ thống từ xa. Hệ thống con
tạo điều kiện thuận lợi cho việc sử dụng SSH như một phương tiện truyền tải an toàn cho các ứng dụng khác (ví dụ:
sftp(1)). Hệ thống con được chỉ định là lệnh từ xa.
-T Tắt phân bổ đầu cuối giả.
-t Buộc phân bổ thiết bị đầu cuối giả. Điều này có thể được sử dụng để thực thi màn hình tùy ý-
các chương trình dựa trên một máy từ xa, có thể rất hữu ích, chẳng hạn như khi triển khai
các dịch vụ thực đơn. Nhiều -t các tùy chọn buộc phân bổ tty, ngay cả khi ssh không có địa phương
tty.
-V Hiển thị số phiên bản và thoát.
-v Chế độ chi tiết. Nguyên nhân ssh để in thông báo gỡ lỗi về tiến trình của nó. Đây là
hữu ích trong việc gỡ lỗi các vấn đề về kết nối, xác thực và cấu hình.
nhiều -v tùy chọn làm tăng tính chi tiết. Tối đa là 3.
-W chủ nhà:cổng
Các yêu cầu rằng đầu vào và đầu ra tiêu chuẩn trên máy khách được chuyển tiếp tới chủ nhà on cổng
qua kênh an toàn. Ngụ ý -N, -T, ThoátVề phía trướcThất bại và
ClearAllChuyển tiếp.
-w local_tun[:điều khiển từ xa]
Yêu cầu chuyển tiếp thiết bị đường hầm với chỉ định thùng lớn đựng rượu(4) các thiết bị giữa
khách hàng (local_tun) và máy chủ (điều khiển từ xa).
Các thiết bị có thể được chỉ định bằng ID số hoặc từ khóa “bất kỳ”, sử dụng
thiết bị đường hầm có sẵn tiếp theo. Nếu như điều khiển từ xa không được chỉ định, nó được mặc định là “bất kỳ”.
Xem thêm Tunnel và thiết bị đường hầm chỉ thị trong ssh_config(5). Nếu Tunnel
Chỉ thị chưa được đặt, nó được đặt ở chế độ đường hầm mặc định, là "điểm-điểm".
-X Bật chuyển tiếp X11. Điều này cũng có thể được chỉ định trên cơ sở mỗi máy chủ lưu trữ trong
tập tin cấu hình.
Chuyển tiếp X11 nên được bật một cách thận trọng. Người dùng có khả năng bỏ qua
quyền tệp trên máy chủ từ xa (đối với cơ sở dữ liệu ủy quyền X của người dùng) có thể
truy cập màn hình X11 cục bộ thông qua kết nối chuyển tiếp. Sau đó kẻ tấn công có thể
có thể thực hiện các hoạt động như giám sát thao tác gõ phím.
Vì lý do này, chuyển tiếp X11 phải tuân theo các hạn chế của phần mở rộng X11 SECURITY
theo mặc định. Vui lòng tham khảo ssh -Y tùy chọn và ForwardX11T Trusted Chỉ thị
in ssh_config(5) để biết thêm thông tin.
(Dành riêng cho Debian: Chuyển tiếp X11 không phải tuân theo phần mở rộng X11 SECURITY
các hạn chế theo mặc định, vì quá nhiều chương trình hiện bị lỗi ở chế độ này.
Đặt ForwardX11T Trusted tùy chọn “không” để khôi phục hành vi ngược dòng. Cái này
có thể thay đổi trong tương lai tùy thuộc vào những cải tiến từ phía khách hàng.)
-x Tắt chuyển tiếp X11.
-Y Bật chuyển tiếp X11 đáng tin cậy. Chuyển tiếp X11 đáng tin cậy không phải tuân theo
Điều khiển tiện ích mở rộng X11 SECURITY.
(Dành riêng cho Debian: Tùy chọn này không có tác dụng gì trong cấu hình mặc định: nó là
tương đương với "ForwardX11T Trusted yes ”, là mặc định như đã mô tả ở trên. Bộ
các ForwardX11T Trusted tùy chọn “không” để khôi phục hành vi ngược dòng. Điều này có thể
thay đổi trong tương lai tùy thuộc vào các cải tiến từ phía khách hàng.)
-y Gửi thông tin nhật ký bằng cách sử dụng syslog(3) mô-đun hệ thống. Theo mặc định thông tin này
được gửi đến stderr.
ssh cũng có thể lấy dữ liệu cấu hình từ tệp cấu hình cho mỗi người dùng và
tệp cấu hình toàn hệ thống. Định dạng tệp và các tùy chọn cấu hình được mô tả trong
ssh_config(5).
THẨM QUYỀN
Máy khách OpenSSH SSH hỗ trợ giao thức SSH 1 và 2. Mặc định là sử dụng giao thức 2
chỉ, mặc dù điều này có thể được thay đổi thông qua Nghị định thư tùy chọn trong ssh_config(5) hoặc -1 và -2
tùy chọn (xem ở trên). Giao thức 1 không được sử dụng và chỉ được cung cấp để hỗ trợ kế thừa
các thiết bị. Nó có một số điểm yếu về mật mã và không hỗ trợ nhiều
các tính năng nâng cao có sẵn cho giao thức 2.
Các phương pháp có sẵn để xác thực là: xác thực dựa trên GSSAPI, dựa trên máy chủ
xác thực, xác thực khóa công khai, xác thực phản hồi thử thách và mật khẩu
xác thực. Tuy nhiên, các phương pháp xác thực được thử theo thứ tự được chỉ định ở trên
Xác thực ưa thích có thể được sử dụng để thay đổi thứ tự mặc định.
Xác thực dựa trên máy chủ hoạt động như sau: Nếu máy mà người dùng đăng nhập được liệt kê
in /etc/hosts.equiv or /etc/ssh/shosts.equiv trên máy điều khiển từ xa và tên người dùng là
giống nhau ở cả hai mặt hoặc nếu các tệp ~ / .rhosts or ~ / .shosts tồn tại trong nhà của người dùng
thư mục trên máy từ xa và chứa một dòng chứa tên của máy khách
và tên của người dùng trên máy đó, người dùng được coi là đăng nhập. Ngoài ra,
máy chủ phải có thể xác minh khóa máy chủ của khách hàng (xem mô tả về
/ etc / ssh / ssh_known_hosts và ~ / .ssh / known_hosts, bên dưới) để đăng nhập được cho phép. Cái này
phương pháp xác thực đóng các lỗ hổng bảo mật do giả mạo IP, giả mạo DNS và định tuyến
sự giả mạo. [Lưu ý với quản trị viên: /etc/hosts.equiv, ~ / .rhostsvà rlogin / rsh
nói chung, giao thức này vốn không an toàn và nên bị vô hiệu hóa nếu muốn bảo mật.]
Xác thực khóa công khai hoạt động như sau: Đề án dựa trên mật mã khóa công khai,
sử dụng các hệ thống mật mã trong đó quá trình mã hóa và giải mã được thực hiện bằng các khóa riêng biệt và
không khả thi để lấy khóa giải mã từ khóa mã hóa. Ý tưởng là mỗi người dùng
tạo một cặp khóa công khai / riêng tư cho mục đích xác thực. Máy chủ biết công chúng
và chỉ người dùng biết khóa riêng tư. ssh triển khai xác thực khóa công khai
tự động, sử dụng một trong các thuật toán DSA, ECDSA, Ed25519 hoặc RSA. Lịch sử
phần ssl(8) (trên hệ thống không phải OpenBSD, xem
http://www.openbsd.org/cgi-bin/man.cgi? query = ssl & sektion = 8 # HISTORY) chứa một đoạn ngắn
thảo luận về các thuật toán DSA và RSA.
Tập tin ~ / .ssh / allow_keys liệt kê các khóa công khai được phép đăng nhập.
Khi người dùng đăng nhập, ssh chương trình cho máy chủ biết cặp khóa nào nó muốn sử dụng
để xác thực. Máy khách chứng minh rằng nó có quyền truy cập vào khóa cá nhân và máy chủ
kiểm tra xem khóa công khai tương ứng có được ủy quyền để chấp nhận tài khoản hay không.
Người dùng tạo cặp khóa của mình bằng cách chạy ssh-keygen(1). Điều này lưu trữ khóa cá nhân trong
~ / .ssh / danh tính (giao thức 1), ~ / .ssh / id_dsa (DSA), ~ / .ssh / id_ecdsa (ECDSA),
~ / .ssh / id_ed25519 (Ed25519), hoặc ~ / .ssh / id_rsa (RSA) và lưu trữ khóa công khai trong
~ / .ssh / identity.pub (giao thức 1), ~ / .ssh / id_dsa.pub (DSA), ~ / .ssh / id_ecdsa.pub (ECDSA),
~ / .ssh / id_ed25519.pub (Ed25519), hoặc ~ / .ssh / id_rsa.pub (RSA) trong thư mục chính của người dùng.
Sau đó, người dùng phải sao chép khóa công khai vào ~ / .ssh / allow_keys trong thư mục chính của anh ấy / cô ấy
trên máy từ xa. Các ủy quyền tệp tương ứng với thông thường ~ / .rhosts
và có một khóa trên mỗi dòng, mặc dù các dòng có thể rất dài. Sau đó, người dùng có thể
đăng nhập mà không cần cung cấp mật khẩu.
Một biến thể về xác thực khóa công khai có sẵn dưới dạng chứng chỉ
xác thực: thay vì một tập hợp các khóa công khai / riêng tư, các chứng chỉ đã ký được sử dụng. Cái này
có lợi thế là một tổ chức chứng nhận đáng tin cậy duy nhất có thể được sử dụng thay cho nhiều
khóa công khai / riêng tư. Xem phần GIẤY CHỨNG NHẬN của ssh-keygen(1) để biết thêm thông tin.
Cách thuận tiện nhất để sử dụng khóa công khai hoặc xác thực chứng chỉ có thể là
đại lý xác thực. Nhìn thấy ssh-agent(1) và (tùy chọn) AddKeysToAgent chỉ thị trong
ssh_config(5) để biết thêm thông tin.
Xác thực phản hồi thử thách hoạt động như sau: Máy chủ gửi một
văn bản "thách thức" và lời nhắc trả lời. Ví dụ về xác thực phản hồi thử thách
bao gồm Xác thực BSD (xem đăng nhập.conf(5)) và PAM (một số hệ thống không phải OpenBSD).
Cuối cùng, nếu các phương pháp xác thực khác không thành công, ssh nhắc người dùng nhập mật khẩu. Các
mật khẩu được gửi đến máy chủ từ xa để kiểm tra; tuy nhiên, vì tất cả các thông tin liên lạc đều
được mã hóa, mật khẩu không thể được nhìn thấy bởi một người nào đó đang nghe trên mạng.
ssh tự động duy trì và kiểm tra cơ sở dữ liệu có chứa nhận dạng cho tất cả các máy chủ lưu trữ nó
đã từng được sử dụng với. Các khóa máy chủ được lưu trữ trong ~ / .ssh / known_hosts trong nhà của người dùng
danh mục. Ngoài ra, tệp / etc / ssh / ssh_known_hosts được tự động kiểm tra
vật chủ đã biết. Mọi máy chủ mới sẽ tự động được thêm vào tệp của người dùng. Nếu một chủ nhà
nhận dạng luôn thay đổi, ssh cảnh báo về điều này và tắt xác thực mật khẩu để
ngăn chặn giả mạo máy chủ hoặc các cuộc tấn công man-in-the-middle, có thể được sử dụng để
phá vỡ mã hóa. Các Kiểm tra nghiêm ngặt tùy chọn có thể được sử dụng để kiểm soát đăng nhập
cho các máy không xác định được hoặc đã thay đổi khóa máy chủ.
Khi danh tính của người dùng đã được máy chủ chấp nhận, máy chủ sẽ thực thi
đã cho lệnh trong một phiên không tương tác hoặc, nếu không có lệnh nào được chỉ định, hãy đăng nhập vào
máy và cung cấp cho người dùng một trình bao bình thường như một phiên tương tác. Mọi thông tin liên lạc
với lệnh từ xa hoặc shell sẽ được mã hóa tự động.
Nếu một phiên tương tác được yêu cầu ssh theo mặc định sẽ chỉ yêu cầu một thiết bị đầu cuối giả
(pty) cho các phiên tương tác khi khách hàng có. Cờ -T và -t có thể được sử dụng để
ghi đè hành vi này.
Nếu một đầu cuối giả đã được cấp phát, người dùng có thể sử dụng các ký tự thoát được ghi chú bên dưới.
Nếu không có thiết bị đầu cuối giả nào được phân bổ, phiên này là trong suốt và có thể được sử dụng để
truyền dữ liệu nhị phân một cách đáng tin cậy. Trên hầu hết các hệ thống, đặt ký tự thoát thành "không" sẽ
cũng làm cho phiên trong suốt ngay cả khi một tty được sử dụng.
Phiên kết thúc khi lệnh hoặc trình bao trên máy từ xa thoát và tất cả X11 và
Kết nối TCP đã bị đóng.
ESCAPE NHÂN VẬT
Khi một thiết bị đầu cuối giả được yêu cầu, ssh hỗ trợ một số chức năng thông qua
sử dụng một ký tự thoát.
Một ký tự dấu ngã duy nhất có thể được gửi dưới dạng ~~ hoặc theo sau dấu ngã bởi một ký tự khác
hơn những gì được mô tả dưới đây. Nhân vật thoát phải luôn theo một dòng mới để được
được hiểu là đặc biệt. Ký tự thoát có thể được thay đổi trong các tệp cấu hình bằng cách sử dụng
các ThoátChar chỉ thị cấu hình hoặc trên dòng lệnh bởi -e tùy chọn.
Các lối thoát được hỗ trợ (giả sử là '~' mặc định) là:
~. Ngắt kết nối.
~ ^ Z Tiểu sử ssh.
~# Liệt kê các kết nối được chuyển tiếp.
~& Tiểu sử ssh lúc đăng xuất khi chờ kết nối chuyển tiếp / phiên X11 tới
chấm dứt.
~? Hiển thị danh sách các ký tự thoát.
~B Gửi một BREAK tới hệ thống từ xa (chỉ hữu ích nếu đồng đẳng hỗ trợ nó).
~C Mở dòng lệnh. Hiện tại, điều này cho phép bổ sung các chuyển tiếp cổng bằng cách sử dụng
-L, -R và -D tùy chọn (xem ở trên). Nó cũng cho phép hủy bỏ
chuyển tiếp cổng với -KL[liên kết_địa chỉ:]cổng cho địa phương, -KR[liên kết_địa chỉ:]cổng cho
từ xa và -KD[liên kết_địa chỉ:]cổng để chuyển tiếp cổng động. !lệnh cho phép
người dùng thực thi một lệnh cục bộ nếu Giấy PhépĐịa PhươngLệnh tùy chọn được kích hoạt trong
ssh_config(5). Trợ giúp cơ bản có sẵn, sử dụng -h tùy chọn.
~R Yêu cầu tạo lại kết nối (chỉ hữu ích nếu đồng đẳng hỗ trợ nó).
~V Giảm độ dài (Mức đăng nhập) khi lỗi đang được ghi vào stderr.
~v Tăng độ dài (Mức đăng nhập) khi lỗi đang được ghi vào stderr.
TCP HƯỚNG DẪN
Việc chuyển tiếp các kết nối TCP tùy ý qua kênh bảo mật có thể được chỉ định trên
dòng lệnh hoặc trong tệp cấu hình. Một ứng dụng có thể có của chuyển tiếp TCP là
một kết nối an toàn đến một máy chủ thư; khác là vượt qua tường lửa.
Trong ví dụ dưới đây, chúng tôi xem xét mã hóa giao tiếp giữa máy khách và máy chủ IRC,
mặc dù máy chủ IRC không hỗ trợ trực tiếp thông tin liên lạc được mã hóa. Những công việc này
như sau: người dùng kết nối với máy chủ từ xa bằng ssh, chỉ định một cổng được sử dụng để
chuyển tiếp kết nối đến máy chủ từ xa. Sau đó, có thể bắt đầu dịch vụ
được mã hóa trên máy khách, kết nối với cùng một cổng cục bộ và ssh
sẽ mã hóa và chuyển tiếp kết nối.
Ví dụ sau chuyển một phiên IRC từ máy khách “127.0.0.1” (máy chủ cục bộ) đến
máy chủ từ xa “server.example.com”:
$ ssh -f -L 1234: localhost: 6667 server.example.com sleep 10
$ irc -c '#users' -p 1234 pinky 127.0.0.1
Điều này tạo đường dẫn kết nối đến máy chủ IRC “server.example.com”, tham gia kênh “#users”,
biệt danh “pinky”, sử dụng cổng 1234. Không quan trọng cổng nào được sử dụng, miễn là nó
lớn hơn 1023 (hãy nhớ rằng chỉ người chủ mới có thể mở ổ cắm trên các cổng đặc quyền) và không
xung đột với bất kỳ cổng nào đã được sử dụng. Kết nối được chuyển tiếp đến cổng 6667 trên
máy chủ từ xa, vì đó là cổng tiêu chuẩn cho các dịch vụ IRC.
Sản phẩm -f nền tùy chọn ssh và lệnh từ xa “sleep 10” được chỉ định để cho phép
khoảng thời gian (trong ví dụ là 10 giây) để bắt đầu dịch vụ sẽ được đào hầm.
Nếu không có kết nối nào được thực hiện trong thời gian quy định, ssh sẽ thoát ra.
X11 HƯỚNG DẪN
Nếu Chuyển tiếpX11 biến được đặt thành “yes” (hoặc xem mô tả của -X, -xvà -Y
tùy chọn ở trên) và người dùng đang sử dụng X11 (biến môi trường DISPLAY được đặt),
kết nối với màn hình X11 được tự động chuyển tiếp đến mặt điều khiển từ xa theo cách như vậy
rằng bất kỳ chương trình X11 nào bắt đầu từ shell (hoặc lệnh) sẽ đi qua
kênh và kết nối đến máy chủ X thực sẽ được thực hiện từ máy cục bộ. Các
người dùng không nên thiết lập DISPLAY theo cách thủ công. Chuyển tiếp các kết nối X11 có thể được định cấu hình trên
dòng lệnh hoặc trong các tệp cấu hình.
Giá trị DISPLAY được đặt bởi ssh sẽ trỏ đến máy chủ, nhưng với một số hiển thị
lớn hơn không. Điều này là bình thường và xảy ra bởi vì ssh tạo một máy chủ "proxy" X trên
máy chủ để chuyển tiếp các kết nối qua kênh được mã hóa.
ssh cũng sẽ tự động thiết lập dữ liệu Xauthority trên máy chủ. Vì mục đích này,
nó sẽ tạo một cookie ủy quyền ngẫu nhiên, lưu trữ nó trong Xauthority trên máy chủ và
xác minh rằng mọi kết nối được chuyển tiếp đều mang cookie này và thay thế nó bằng cookie thực
khi kết nối được mở. Cookie xác thực thực không bao giờ được gửi đến máy chủ
máy (và không có cookie nào được gửi ở đồng bằng).
Nếu Đại lý chuyển tiếp biến được đặt thành “yes” (hoặc xem mô tả của -A và -a
tùy chọn ở trên) và người dùng đang sử dụng tác nhân xác thực, kết nối với tác nhân là
tự động chuyển tiếp đến phía điều khiển từ xa.
KIỂM ĐỊNH HOST KHÓA
Khi kết nối với máy chủ lần đầu tiên, dấu vân tay của khóa công khai của máy chủ là
trình bày cho người dùng (trừ khi tùy chọn Kiểm tra nghiêm ngặt đã bị vô hiệu hóa).
Dấu vân tay có thể được xác định bằng cách sử dụng ssh-keygen(1):
$ ssh-keygen -l -f / etc / ssh / ssh_host_rsa_key
Nếu dấu vân tay đã được biết, nó có thể được khớp và khóa có thể được chấp nhận hoặc
phế phẩm. Nếu chỉ các vân tay kế thừa (MD5) cho máy chủ khả dụng, ssh-keygen(1)
-E có thể được sử dụng để hạ cấp thuật toán vân tay cho phù hợp.
Do khó so sánh các khóa máy chủ chỉ bằng cách nhìn vào chuỗi vân tay,
cũng có hỗ trợ để so sánh các khóa máy chủ một cách trực quan, sử dụng ngẫu nhiên nghệ thuật. Bằng cách thiết lập
VisualhostKey tùy chọn “có”, một đồ họa ASCII nhỏ được hiển thị trên mỗi lần đăng nhập vào
máy chủ, bất kể phiên đó có tương tác hay không. Bằng cách học mẫu a
máy chủ đã biết tạo ra, người dùng có thể dễ dàng phát hiện ra rằng khóa máy chủ đã thay đổi khi
mô hình hoàn toàn khác được hiển thị. Bởi vì những mẫu này không rõ ràng
tuy nhiên, một mô hình trông tương tự với mô hình được ghi nhớ chỉ mang lại một
xác suất rằng khóa máy chủ giống nhau, không đảm bảo bằng chứng.
Để có được danh sách các dấu vân tay cùng với tác phẩm ngẫu nhiên của chúng cho tất cả các máy chủ đã biết,
dòng lệnh sau có thể được sử dụng:
$ ssh-keygen -lv -f ~ / .ssh / known_hosts
Nếu dấu vân tay không xác định, có một phương pháp xác minh thay thế: SSH
dấu vân tay được xác minh bởi DNS. Bản ghi tài nguyên bổ sung (RR), SSHFP, được thêm vào
tệp vùng và ứng dụng khách kết nối có thể đối sánh dấu vân tay với dấu vân tay của khóa
trình bày.
Trong ví dụ này, chúng tôi đang kết nối máy khách với máy chủ, “host.example.com”. SSHFP
bản ghi tài nguyên trước tiên phải được thêm vào tệp vùng cho host.example.com:
$ ssh-keygen -r máy chủ.example.com.
Các dòng đầu ra sẽ phải được thêm vào tệp vùng. Để kiểm tra xem khu vực này có đang trả lời hay không
truy vấn dấu vân tay:
$ đào -t SSHFP host.example.com
Cuối cùng khách hàng kết nối:
$ ssh -o "VerifyHostKeyDNS ask" host.example.com
[...]
Tìm thấy tệp tham chiếu khóa máy chủ phù hợp trong DNS.
Bạn có chắc chắn muốn tiếp tục kết nối (có / không) không?
Xem Xác minhHostKeyDNS tùy chọn trong ssh_config(5) để biết thêm thông tin.
DỰA trên SSH VIRTUAL TƯ MẠNG
ssh có hỗ trợ cho đường hầm Mạng riêng ảo (VPN) bằng cách sử dụng thùng lớn đựng rượu(4) mạng
thiết bị giả, cho phép kết nối hai mạng một cách an toàn. Các sshd_config(5)
tùy chọn cấu hình Giấy PhépĐường Hầm kiểm soát xem máy chủ có hỗ trợ điều này hay không và
cấp độ (lưu lượng truy cập lớp 2 hoặc 3).
Ví dụ sau sẽ kết nối mạng khách hàng 10.0.50.0/24 với mạng từ xa
10.0.99.0/24 sử dụng kết nối điểm-điểm từ 10.1.1.1 đến 10.1.1.2, với điều kiện là
Máy chủ SSH chạy trên cổng vào mạng từ xa, tại 192.168.1.15, cho phép nó.
Trên máy khách:
# ssh -f -w 0: 1 192.168.1.15 true
# ifconfig tun0 10.1.1.1 10.1.1.2 mặt nạ mạng 255.255.255.252
# thêm tuyến đường 10.0.99.0/24 10.1.1.2
Trên máy chủ:
# ifconfig tun1 10.1.1.2 10.1.1.1 mặt nạ mạng 255.255.255.252
# thêm tuyến đường 10.0.50.0/24 10.1.1.1
Quyền truy cập của khách hàng có thể được điều chỉnh tinh vi hơn thông qua /root/.ssh/authorized_keys tập tin (xem bên dưới)
và Giấy phépRootĐăng nhập tùy chọn máy chủ. Mục nhập sau sẽ cho phép các kết nối trên
thùng lớn đựng rượu(4) thiết bị 1 từ người dùng “jane” và trên thiết bị 2 từ người dùng “john”, nếu Giấy phépRootĐăng nhập is
đặt thành “chỉ lệnh bắt buộc”:
tunnel = "1", command = "sh / etc / netstart tun1" ssh-rsa ... jane
tunnel = "2", command = "sh / etc / netstart tun2" ssh-rsa ... john
Vì thiết lập dựa trên SSH đòi hỏi một lượng chi phí hợp lý, nó có thể phù hợp hơn với
thiết lập tạm thời, chẳng hạn như cho VPN không dây. Các VPN lâu dài hơn được cung cấp tốt hơn bởi
các công cụ như ipsecctl(8) isakmpd(8).
MÔI TRƯỜNG
ssh thường sẽ đặt các biến môi trường sau:
HIỂN THỊ Biến DISPLAY cho biết vị trí của máy chủ X11. Nó là
tự động thiết lập bởi ssh để trỏ đến một giá trị có dạng “tên máy chủ: n”,
trong đó "tên máy chủ" chỉ ra máy chủ lưu trữ nơi trình bao chạy và 'n' là
một số nguyên ≥ 1. ssh sử dụng giá trị đặc biệt này để chuyển tiếp X11
kết nối qua kênh an toàn. Người dùng thường không nên đặt
HIỂN THỊ rõ ràng, vì điều đó sẽ làm cho kết nối X11 không an toàn
(và sẽ yêu cầu người dùng sao chép thủ công bất kỳ ủy quyền cần thiết nào
bánh quy).
HOME Đặt thành đường dẫn của thư mục chính của người dùng.
LOGNAME Từ đồng nghĩa với USER; thiết lập để tương thích với các hệ thống sử dụng
biến.
MAIL Đặt thành đường dẫn hộp thư của người dùng.
PATH Đặt thành PATH mặc định, như được chỉ định khi biên dịch ssh.
SSH_ASKPASS Nếu ssh cần một cụm mật khẩu, nó sẽ đọc cụm mật khẩu từ
thiết bị đầu cuối hiện tại nếu nó được chạy từ một thiết bị đầu cuối. Nếu như ssh không có
một thiết bị đầu cuối được liên kết với nó nhưng DISPLAY và SSH_ASKPASS được đặt, nó
sẽ thực thi chương trình được chỉ định bởi SSH_ASKPASS và mở X11
cửa sổ để đọc cụm mật khẩu. Điều này đặc biệt hữu ích khi
gọi ssh từ một .xsession hoặc tập lệnh liên quan. (Lưu ý rằng trên một số
máy có thể cần chuyển hướng đầu vào từ / dev / null đến
làm cho công việc này.)
SSH_AUTH_SOCK Xác định đường dẫn của ổ cắm miền UNIX được sử dụng để giao tiếp với
đại lý.
SSH_CONNECTION Xác định máy khách và máy chủ kết thúc kết nối. Biến
chứa bốn giá trị được phân tách bằng dấu cách: địa chỉ IP máy khách, cổng máy khách
số, địa chỉ IP máy chủ và số cổng máy chủ.
SSH_ORIGINAL_COMMAND Biến này chứa dòng lệnh ban đầu nếu một lệnh bắt buộc
được thực thi. Nó có thể được sử dụng để trích xuất các đối số ban đầu.
SSH_TTY Điều này được đặt thành tên của tty (đường dẫn đến thiết bị) được liên kết
với trình bao hoặc lệnh hiện tại. Nếu phiên hiện tại không có tty,
biến này không được đặt.
TZ Biến này được đặt để chỉ ra múi giờ hiện tại nếu nó được đặt
khi daemon được khởi động (tức là daemon chuyển giá trị cho
kết nối mới).
USER Đặt thành tên của người dùng đăng nhập.
Ngoài ra, ssh đọc ~ / .ssh / môi trườngvà thêm các dòng có định dạng “VARNAME = value” vào
môi trường nếu tệp tồn tại và người dùng được phép thay đổi môi trường của họ. Vì
thêm thông tin, hãy xem PermitUserEnosystem tùy chọn trong sshd_config(5).
Sử dụng ssh trực tuyến bằng các dịch vụ onworks.net