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


61

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

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

回答:


58

実行:

avahi-browse -tl _workstation._tcp

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

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

7
注:avahi-browseでは、avahi-utilsパッケージをインストールする必要があります(avahi-daemon.localアドレス指定機能を提供するサービスもプルインします)。
-Piskvor

2
@Piskvor良い点。このパッケージはデフォルトでUbuntu Desktopにデフォルトでインストールされていますが、他のフレーバー(kubuntu、lubuntuなど)については知りません。インストールされていない場合は、単に実行しsudo apt-get install avahi-utilsます。
エリックカルヴァ

それで、sshサーバーをセットアップする必要がありますか、例えばubuntu 14.04はデフォルトで実行しますか?
トビ

1
@tobi SSHサーバーはデフォルトではインストールされません。インストールする必要があります。
エリック

2
実行しavahiた後、リストは空のようです。両方のコンピューターが同じルーターに接続されている
ホセオスピナ

15

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

192.168.1.104  dad
192.168.1.105  kids

12
IPをコンピューターに静的に割り当てる必要があることを指摘する必要があります。
アラーアリ

3
あなたは、有効にすることができますssh内のホストに名前を付けることにより、hostsファイルを編集せずに名前でINGを~/.ssh/confighowtogeek.com/75007/...
ネイサンロング

@NathanLong-素敵なヒント!ただし、hostsファイルに含めると、任意のサービスにアクセスできます(必要な場合)。
-stefgosselin

9

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

 sudo apt-get install openssh-client

 sudo apt-get install openssh-server

すでにしている場合

 ssh username@ipaddress

 Enter connecting device login password.

例:

 ssh prem@192.168.1.145

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

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

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


8

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

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


次に、どのように1は、関連付けるために自宅のインターネットゲートウェイアプライアンスのDNS機能を設定しないserver1-web.example.orgserver2-db.example.org、それぞれのサーバと?
ダミアンジェリック

5
  1. LANが静的IPを使用している場合は、ローカルIPに直接sshできます。たとえば、
    ssh someuser@192.168.1.2

  2. Ed Manetの回答で言及されているように、両方のコンピューターでhostsファイルを編集できます。そうすれば、コンピューターのホスト名を使用してsshを実行できます。ssh someuser@some_hostname

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

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


3

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

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


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

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


1
注:最近の多くのホームルーターは、IPアドレスの割り当て中にワークステーションのホスト名を読み取り、ローカルDNS用に解決します。残念ながら、これはまだ普遍的な機能ではありません。
-Piskvor

2

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

ssh <IP-address>

または:

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

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

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


私はあなたの提案を試みましたが、エラーが発生しました:ssh: connect to host xxx.xxx.x.xx port 22: connection refused-追加の設定が必要ですか?
lukaszkups

そのマシン上でsshサーバーを実行する必要があり、ファイアウォールがそれをブロックしていないなどです。sshが他のポートでの接続を予期するように構成されている可能性があります。その場合、ユーザー-pフラグを使用してデフォルトポート(22)以外のものを使用することができます。
タネルメイ

0

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

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

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


0

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.