Cách tốt nhất để SSH đến các máy trên mạng cục bộ là gì?


61

Tôi có 2 máy tính, một cái tôi sử dụng và một cái cho bọn trẻ. Tôi muốn có thể ssh vào máy tính của họ để điều khiển nó (như tắt nó đi, v.v.) nhưng tò mò cách tốt nhất để làm điều này. Cả hai chúng tôi ở cùng một nhà và chia sẻ cùng một kết nối internet.

cách nào tốt nhất để làm việc này? Từ nghiên cứu, tôi đọc để cài đặt openssh-server trên máy tính từ xa nhưng tôi không biết nên sử dụng tên máy chủ nào khi cố gắng kết nối. Thông thường đối với VPS, đó là IP bên ngoài nhưng vì cả hai chúng tôi đều chia sẻ kết nối wifi nên đó có phải là IP phần cứng không? Chúng ta có nên giao tiếp trực tiếp bằng mạng LAN hoặc bằng cách truy cập internet?

Câu trả lời:


58

Chạy:

avahi-browse -tl _workstation._tcp

Để có danh sách các máy trạm Ubuntu trong mạng cục bộ, sau đó bạn có thể kết nối với chúng bằng cách chạy:

ssh <username>@<computer-name>.local

7
Lưu ý: đối với avahi-browse, bạn sẽ cần cài đặt avahi-utilsgói ( avahi-daemondịch vụ này cũng sẽ cung cấp dịch vụ cung cấp địa chỉ .local).
Piskvor

2
@Piskvor Điểm tốt. Gói này đã được cài đặt theo mặc định trong Ubuntu Desktop, nhưng tôi không biết về các hương vị khác (kubfox, mỡ Ubuntu, v.v.). Nếu nó không được cài đặt, chỉ cần chạy sudo apt-get install avahi-utils.
Eric Carvalho

Vì vậy, nó sẽ là cần thiết để thiết lập một máy chủ ssh hoặc ví dụ như Ubuntu 14.04 chạy một mặc định?
tobi

1
@tobi Máy chủ SSH không được cài đặt theo mặc định. Bạn phải cài đặt nó.
Eric Carvalho

2
danh sách có vẻ trống sau khi tôi chạy avahi. Cả hai máy tính được kết nối với cùng một bộ định tuyến
Jose Ospina

15

Bạn có thể sử dụng địa chỉ IP để ssh vào máy tính của trẻ. Nếu bạn muốn sử dụng tên máy tính, hãy chỉnh sửa tệp / etc / hosts để bao gồm tên máy tính.

192.168.1.104  dad
192.168.1.105  kids

12
Bạn cần chỉ ra rằng các IP cần được gán tĩnh cho các máy tính.
Alaa Ali

3
Bạn có thể bật sshing theo tên mà không cần chỉnh sửa tệp máy chủ bằng cách đặt tên máy chủ trong ~/.ssh/config: howtogeek.com/75007/iêu
Nathan Long

@NathanLong - Mẹo hay! mặc dù người ta có thể tranh luận rằng có nó trong tệp lưu trữ cho phép một người truy cập bất kỳ dịch vụ nào (nếu muốn).
stefgosselin

9

Trước khi thực hiện ssh, hãy kiểm tra ssh client và server. Nếu bạn không cài đặt các dịch vụ này

 sudo apt-get install openssh-client

 sudo apt-get install openssh-server

Nếu bạn đã làm

 ssh username@ipaddress

 Enter connecting device login password.

Thí dụ :

 ssh prem@192.168.1.145

 prem@192.168.1.145's password:********

Nếu bạn gặp bất kỳ lỗi nào như: "Quyền bị từ chối, vui lòng thử lại."

Vui lòng kiểm tra hai lần cho Tên người dùng và ip.


8

Tôi sử dụng tệp ~ / .ssh / config mà ssh phân tích tự động, đây là một ví dụ:

Host *
ControlMaster auto
ControlPath /tmp/%r@%h:%p

KeepAlive yes 
ServerAliveInterval 60
ServerAliveCountMax 10
ControlPersist 1h

Host server1
        User user1
        HostName server1-web.example.org

Host server2
        User user2
        HostName server2-db.example.org
        Compression yes
        IdentityFile /home/user/.ssh/different_key.pem

Lưu ý rằng bạn có thể sử dụng bất kỳ biến (clientide) nào trong tệp này và đặt nó trên toàn cầu hoặc trên mỗi máy chủ.


Sau đó, làm thế nào để cấu hình cơ sở DNS của thiết bị cổng Internet gia đình để liên kết server1-web.example.orgserver2-db.example.orgvới các máy chủ tương ứng?
Damian Yerrick

5
  1. Bạn có thể ssh trực tiếp đến một IP cục bộ với điều kiện LAN của bạn sử dụng IP tĩnh, chẳng hạn
    ssh someuser@192.168.1.2

  2. Bạn có thể chỉnh sửa tập tin máy chủ trong cả hai máy tính, như Ed Manet đã đề cập trong câu trả lời của anh ấy . Bằng cách đó bạn có thể sử dụng tên máy chủ của máy tính, đó làssh someuser@some_hostname

  3. Bạn có thể thiết lập máy chủ DNS cục bộ để giải quyết các máy chủ LAN của mình. Bằng cách này, bạn sẽ có thể ssh sử dụng tên máy chủ của máy tính như trong tùy chọn 2 nhưng với lợi ích bổ sung là tránh chỉnh sửa mọi tệp máy chủ, bằng cách trỏ máy chủ DNS của bạn vào cài đặt mạng của Ubuntu.

DNSMasq là máy chủ DNS khá tốt dễ cài đặt.
Một lựa chọn khác là BIND .


3

Sử dụng địa chỉ IP LAN cục bộ. Cách tiếp cận thay thế yêu cầu một số cổng phải được mở với Internet, để cho phép bạn đăng nhập.

Ngoài ra, bạn sẽ cần ánh xạ cổng (trên bộ định tuyến). Sử dụng địa chỉ IP 'công khai' của bạn (trên bộ định tuyến) làm mục tiêu sẽ không kết nối với một trong hai PC của bạn.


Cách đơn giản nhất là gán vĩnh viễn từng địa chỉ IP (cho 2 máy tính của bạn) trên bộ định tuyến. Sau đó, chỉ cần kết nối với địa chỉ IP đó.

Nếu bạn muốn thông minh (sau này), hãy thiết lập máy chủ và bắt đầu sử dụng dịch vụ DNS cục bộ để gán tên có ý nghĩa cho từng thiết bị. Không thực sự có giá trị rắc rối cho chỉ 2 PC.


1
Lưu ý: nhiều bộ định tuyến gia đình tốt hiện nay sẽ đọc tên máy chủ của máy trạm trong khi gán địa chỉ IP và sẽ giải quyết nó cho DNS cục bộ. Than ôi, đây chưa phải là một tính năng phổ quát.
Piskvor

2

Nếu bạn đang chia sẻ cùng một kết nối internet, rất có thể bạn sẽ đứng sau cùng một bộ định tuyến wifi. Vì vậy, bạn kết nối trực tiếp với máy tính trẻ em của bạn:

ssh <IP-address>

hoặc là:

ssh <user-name>@<IP-address>

Rõ ràng điều này hoạt động tốt hơn nếu máy tính trẻ em có địa chỉ IP tĩnh. Nếu không, bạn luôn cần kiểm tra IP là gì. Hầu hết các bộ định tuyến đều có tùy chọn gán IP tĩnh (luôn giống nhau) cho các thiết bị được chọn. Một số bộ định tuyến cũng có tùy chọn gán tên máy chủ cho một thiết bị nhất định - sau đó đối với bất kỳ thiết bị nào trong cùng địa chỉ mạng "trẻ em" cũng có nghĩa tương tự. Nếu bạn gán tên máy chủ với tệp / etc / hosts, tên máy chủ chỉ được biết đến với máy tính có tệp máy chủ đó. Ngoài ra, giả định rằng máy tính trẻ em có địa chỉ IP tĩnh.

Bạn có thể đặt IP tĩnh cho máy tính trẻ em trong máy đó nhưng tôi khuyên bạn nên thiết lập nơi cài đặt mạng được thực hiện trong bộ định tuyến. Một điểm kiểm soát - dễ quản lý hơn. Nếu có gì đó không rõ ràng, hãy để lại nhận xét và tôi sẽ mở rộng câu trả lời của mình.


Tôi đã thử đề xuất của bạn, nhưng gặp lỗi: ssh: connect to host xxx.xxx.x.xx port 22: connection refused- có cần thêm cấu hình nào không?
lukaszkups

Cần phải có máy chủ ssh chạy trên máy đó và không có tường lửa chặn nó và cứ thế. Có thể là ssh đã được cấu hình để mong đợi các kết nối trên một số cổng khác, trong trường hợp đó, cờ người dùng có thể sử dụng một cái gì đó khác với cổng mặc định (22).
Tanel Mae

0

Bạn có thể sử dụng địa chỉ IP thay cho tên máy chủ hoặc gán tên máy chủ tùy chỉnh trong /etc/hoststệp của mình .

Để lấy IP trên máy tính của trẻ: trên menu mạng, xem "Thông tin kết nối" hoặc chạy ifconfigtrên dòng lệnh (những điều này phải được thực hiện trên máy tính của trẻ).

Bộ định tuyến wifi của bạn chỉ định các địa chỉ IP này và bạn sẽ có thể định cấu hình nó để giữ địa chỉ IP cụ thể cho các máy tính mà chúng hiện được gán. (Nếu không, IP có thể thay đổi theo thời gian).


0

Bạn chỉ có thể gán tên tính toán cho máy của con bạn.
Sau đó, chỉ cần làm
ssh MachineName

Tôi không bao giờ sử dụng điều này, chỉ là một suy nghĩ trong đầu tôi chia sẻ.

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.