Tôi đang cố gắng kết nối với máy bằng ssh và sau đó kết nối với máy khác hai bằng ssh. Nhưng gặp lỗi này:Lỗi SSH khi thực thi lệnh từ xa: "stdin: không phải là tty"
ssh [email protected] 'ssh [email protected]'
stdin: is not a tty
Tôi đang cố gắng kết nối với máy bằng ssh và sau đó kết nối với máy khác hai bằng ssh. Nhưng gặp lỗi này:Lỗi SSH khi thực thi lệnh từ xa: "stdin: không phải là tty"
ssh [email protected] 'ssh [email protected]'
stdin: is not a tty
Khi đăng nhập vào trình bao, máy chủ từ xa giả định rằng kết nối được thực hiện bởi người dùng. Do đó, rất hợp lý để mong đợi rằng họ có quyền kiểm soát tiêu chuẩn trong trên máy khách. Đó là để nói, người dùng đang cho đầu vào trên một thiết bị đầu cuối thông qua bàn phím. Nếu máy chủ từ xa phát hiện rằng người dùng không phải là con người (vì đầu vào không phải là thiết bị đầu cuối - tty, mà là một quy trình khác), nó có thể cảnh báo người dùng về điều kiện bất ngờ này.
Trình diễn sai phạm đã thảo luận và cách để tránh (man ssh
và tìm kiếm giải thích kỹ lưỡng hơn).
$ ssh -t genja.org 'ssh raptor.lan hostname\; uptime'
host: genja.lan
raptor
21:17:27 up 3 days, 15 min, 1 user, load average: 0.00, 0.00, 0.00
Connection to genja.org closed.
$ ssh genja.org uptime
host: genja.lan
21:17:43 up 12 days, 17:40, 1 user, load average: 0.30, 0.08, 0.02
... và các lỗi:
$ ssh genja.org 'ssh raptor.lan hostname\; uptime'
host: genja.lan
Permission denied (publickey,keyboard-interactive).
Bạn có thể muốn thực hiện một đường hầm thay vì:
ssh -L 4444:raptor.lan:22 genja.org
Sau đó, trên một thiết bị đầu cuối khác nhau:
ssh -p 4444 localhost will give you a conenction straight to "raptor.lan"
Sử dụng các địa chỉ IP như 192.168.0.11 nếu các bí danh DNS không được cấu hình trên đầu cuối từ xa.
Thử thêm cờ '-t' vào' ssh' đầu tiên. Nhân tiện, vì câu hỏi của bạn không liên quan đến lập trình, nó có thể phù hợp hơn tại http://superuser.com/ – aland
@aland Bạn có lý do. Với tùy chọn -t chạy. – Jhonathan