web-dev-qa-db-ja.com

ローカルネットワーク上のマシンにSSHで接続する最良の方法は何ですか?

私は2台のコンピューターを所有しています。1台は子供用、もう1台は子供用です。私は彼らのコンピューターにsshしてそれを制御できるようにしたい(シャットダウンするなど)が、これを行うための最良の方法に興味があります。私たちは両方とも同じ家にいて、同じインターネット接続を共有しています。

これを行う最良の方法は何でしょうか?調査から、私はリモートコンピューターにopenssh-serverをインストールすることを読みましたが、接続しようとしたときにホスト名に何を使用するか迷っています。通常、VPSの場合は外部IPですが、2人ともwifi接続を共有するため、ハードウェアIPになりますか? LANまたはインターネットを介して直接インターフェイスする必要がありますか?

60
dukevin

実行:

avahi-browse -tl _workstation._tcp

ローカルネットワーク内のUbuntuワークステーションのリストを取得するには、次を実行して接続できます。

ssh <username>@<computer-name>.local
57
Eric Carvalho

IPアドレスを使用して、子供のコンピューターにSSH接続できます。コンピューター名を使用する場合は、/ etc/hostsファイルを編集してコンピューター名を含めます。

192.168.1.104  dad
192.168.1.105  kids
15
Ed Manet

Sshが自動的に解析する〜/ .ssh/configファイルを使用します。以下に例を示します。

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

このファイルで任意の(クライアント側)変数を使用し、グローバルまたはサーバーごとに設定できることに注意してください。

8
Shadok

Sshを実行する前に、sshクライアントとサーバーを確認します。これらのサービスがインストールされていない場合

 Sudo apt-get install openssh-client

 Sudo apt-get install openssh-server

すでにしている場合

 ssh username@ipaddress

 Enter connecting device login password.

例:

 ssh [email protected]

 [email protected]'s password:********

「許可が拒否されました。もう一度やり直してください」などのエラーが表示された場合。

ユーザー名とIPを2回確認してください。

8
PAC
  1. LANが静的IPを使用している場合は、ローカルIPに直接sshできます。たとえば、
    ssh [email protected]

  2. Ed Manetが answer で述べているように、両方のコンピューターでhostsファイルを編集できます。そうすれば、コンピューターのホスト名、つまりssh someuser@some_hostnameを使用してsshできます

  3. ローカルDNSサーバーをセットアップして、LANのホストを解決できます。この方法では、オプション2のようにコンピューターのホスト名を使用してsshを実行できますが、Ubuntuのネットワーク設定でDNSサーバーを指定することにより、すべてのホストファイルを編集する必要がなくなります。

DNSMasq はセットアップが簡単なDNSサーバーです。
別のオプションは BIND です。

5
Stef K

ローカルLAN IPアドレスを使用します。別の方法では、ログインできるように、インターネットに対して開いているポートが必要です。

また、ポートマッピング(ルーター上)が必要になります。 (ルーター上の)「パブリック」IPアドレスをターゲットとして使用すると、2台のPCのいずれかにnotが接続されます。


最も簡単な方法は、ルーター上の各IPアドレス(2台のコンピューター用)を永続的に割り当てることです。次に、そのIPアドレスに接続するだけです。

賢い(後で)取得したい場合は、サーバーをセットアップし、ローカルDNSサービスの使用を開始して、各デバイスに意味のある名前を割り当てます。 たった2台のPCで本当に面倒な価値はありません。

3
david6

同じインターネット接続を共有している場合、同じWiFiルーターの背後にいる可能性が高くなります。したがって、あなたはあなたの子供のコンピューターに直接接続します:

ssh <IP-address>

または:

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

明らかに、子供のコンピューターに静的IPアドレスがある場合、これはよりうまく機能します。それ以外の場合は、常にIPが何であるかを確認する必要があります。ほとんどのルーターには、選択したデバイスに静的(常に同じ)IPを割り当てるオプションがあります。一部のルーターには、特定のデバイスにホスト名を割り当てるオプションもあります。同じネットワークアドレス内のどのデバイスでも、「kids」は同じことを意味します。/etc/hostsファイルでホスト名を割り当てると、ホスト名は、そのホストファイルがあるコンピューターのみに認識されます。また、子供のコンピューターが静的IPアドレスを持っていることを前提としています。

そのマシンでも子供用コンピューターに静的IPを設定できますが、ルーターでネットワーク設定を行うセットアップをアドバイスします。制御の一点-管理が簡単。不明な点がある場合は、コメントを残してください。回答を拡大します。

2
Tanel Mae

単に子供のマシンに割り当てコンピュート名を付けることができます。
それから単に、
ssh MachineName

私はこれを使ったことはなく、頭の中で考えただけで共有した。

0
Gaurav Gandhi

ホスト名の代わりにIPアドレスを使用するか、/etc/hostsファイルでカスタムホスト名を割り当てることができます。

子供のコンピューターでIPを取得するには、ネットワークメニューで「接続情報」またはを参照してください。コマンドラインでifconfigを実行します(これらは子供のコンピューター)。

Wi-FiルーターはこれらのIPアドレスを割り当て、現在割り当てられているコンピューターの特定のIPアドレスを保持するように構成できるはずです。 (それ以外の場合、IPは時々変更される可能性があります)。

0
AmanicA