GNU/Linux >> Linux の 問題 >  >> Linux

2つのLinuxシステム間でデータを接続および共有する方法

私は興味深いリクエストを受け取りました(私の地域のシングルからではありません)。ある読者から、2つのLinuxボックスを接続するにはどうすればよいかと聞かれました。共有の目的であると思います。これは私が頻繁に触れたトピックですが、しばしば間接的に触れました。ポリスアカデミーのラサード司令官が言うように、これを行うには多くの、多くの、多くの、多くの異なる方法があります。

したがって、おそらく適切なチュートリアルの時間です。 2つのLinuxシステムをネットワーク経由で通信させるためのいくつかの一般的で堅牢な方法を紹介します。コマンドラインで実行し、ファイルマネージャーに移動し、最後に、使いやすいGUIツールを使用してリモートデータバックアップを実行します。始めましょう。

コマンドライン:SSH、SCP

2つのLinuxシステムを接続する「最も簡単な」方法は、SSHプロトコルを使用することです。便利で安全で、ほとんどすべてのLinuxシステムで利用できます。現在、一部のリモート[原文のまま]の場合、ソフトウェアの互換性のないバージョンが原因で相互運用性の問題が発生する可能性がありますが、全体としては問題はないはずです。

1つのホストがサーバーとして機能します(デフォルトではTCPポート22を開きます)。もう1つはクライアントとして機能します。 SSHコマンドラインユーティリティを使用して、サーバーへの接続を確立し、管理タスクを含むローカルとしてリモートでコマンドを実行することもできます(適切な権限がある場合)。または、SCPを使用して、クライアントからサーバーにファイルを安全にコピーしたり、サーバーからクライアントホストにファイルを取得したりすることもできます。

SSHサーバーのセットアップ

Fedora32サーバーとKubuntu18.04クライアントでデモンストレーションします。まず、SSHサービスソフトウェアをインストールして構成する必要があります。手順はディストリビューションごとにわずかに異なる場合がありますが、主に、ここに表示されるのはほとんどすべてです。注目すべき違いの1つは、SSHサーバーを識別するために使用されるパッケージ名です。Fedoraでは、openssh-serverとして提供されます。既存のsshd(sshデーモン=サービス)を検索しても、実際には何も得られません。

引数に一致するものがありません:sshd
エラー:一致するものが見つかりません:sshd

sudo dnf search ssh
...
openssh-ldap.x86_64:オープンソースSSHサーバーデーモンのLDAPサポート
openssh-server.x86_64:オープンソースSSHサーバーデーモン
openssh.x86_64:SSHプロトコルバージョン2のオープンソース実装
...

openssh-serverをインストールすると、サービスを開始できます。通常、デフォルトでは起動時に実行されますが、いつでも手動で起動または再起動することもできます(コマンドまたは起動サービススクリプトを使用)。ただし、SSHキー(ホストが使用するSSHキー)がない場合は実行されません。一意に識別できます)。

sshd
sshdの再実行には、絶対パスを使用した実行が必要です

/ usr / sbin / sshd
/ etc / ssh / sshd_config:アクセスが拒否されました

sudo / usr / sbin / sshd
sshd:使用可能なホストキーがありません-終了します。

ホストキーを生成する必要があります:

sudo ssh-keygen -A
ssh-keygen:新しいホストキーの生成:RSA DSA ECDSA ED25519

そして今、openssh-serverが実行されます:

sudo / usr / sbin / sshd

ps -ef | grep ssh
roger 1832 1791 0 15:03? 00:00:00 / usr / bin / ssh-agent / bin / sh -c exec -l / bin / bash -c "/ usr / bin / gnome-session"
root 3640 1675 0 15:17? 00:00:00 sshd:/ usr / sbin / sshd[listener]0/10-100スタートアップ

ネットワーク設定

ローカルネットワーク上で2つのボックスを接続する方法を紹介します。規約が適用されます。 2つのホストが到達可能である必要があります(ファイアウォールなど)。ネットワークポートを開くと、セキュリティに影響を与える可能性があります。ローカルネットワークではそれほどではありませんが、Internetzなどのパブリックネットワークではより多くの影響があります。しかし、私はあなたのshi ...のもののセキュリティについて議論するためにここにいるのではなく、単にあなたのLANセットアップで2つのボックスを接続する方法をあなたに示すためです。ただし、最も興味のある人は、root以外のアクセス、デフォルト以外のポートの使用、ログインスロットリング、その他のさまざまな制限など、SSHを強化できます。

次に、LinuxサーバーマシンのIPアドレスまたはホスト名を書き留めます。 「最新の」ディストリビューションでは、netstatとifconfigがもはやクールではないため、IPアドレスを見つけるのは簡単ではありませんが、それは可能です。これは、接続のクライアント部分に必要になります。

コマンドライン:SSH、SCP(続き)

クライアントで、サーバーに接続します。構文は次のとおりです。

ssh username @ hostname

したがって、実際には、私の例では、これは-初めての接続警告に注意してください:

ssh [email protected]
ホスト「192.168.2.107(192.168.2.107)」の信頼性を確立できません。
ECDSAキーのフィンガープリントはSHA256:8Qk // cbC0v3BLuU1FQ / vjABNN34nw1sWANY+hoycHiEです。
接続を続行してもよろしいですか(はい/いいえ)?はい
警告:既知のホストのリストに「192.168.2.107」(ECDSA)を恒久的に追加しました。
[email protected]のパスワード:
最終ログイン:Thu Sep 17 15:03:38 2020

これで、「イン」になりました。サーバー上で何かを実行できるようになりました。ただし、データを前後にコピーできるようにする必要もあります。それではSCPを使いましょう。構文は次のとおりです。

scp source username @ hostname:destination

scpコマンドは、さまざまな有用な引数も取ります。フォルダーを再帰的に処理したり、アクセス許可を保持したり、デフォルト以外のポートに接続したりできます。興味深いことに、おそらく皮肉なことに、sshは小文字のpを使用してポートを指定しますが(例:-p 2222)、scpは大文字のpを使用します(例:-P 2223)。 scpでは、小文字のpを使用して、元のファイルのモードと時刻を保持します。そこに。

scp -r /home/igor/Wallpapers/ [email protected]:/home/roger/Pictures/
[email protected]のパスワード:
wallhaven-156819.jpg 100%166KB 500.8KB / s 00:00
wallhaven-448391.jpg 100%1606KB 3.0MB / s 00:00
wallhaven-12679.jpg 100%501KB 5.4MB / s 00:00
.. ..

上記の例では、Wallpapersディレクトリの内容をサーバーのPicturesフォルダに再帰的にコピーします。データフローの方向(ソース、宛先)はいつでも逆にすることができます。

無人SSH、SCP接続

上記のように、私の例では、パスワードの入力を求められました。これはインタラクティブな作業には適していますが、夜間にスケジュールされたジョブなど、無人のバックアップを実行する場合は面倒な場合があります。そのためには、SSH公開鍵と秘密鍵のペアを構成する必要があります。リンクされたチュートリアルはこれをうまく説明しています。

コマンドライン:rsync

2つのホスト間の接続の最も明白な使用例は、データのバックアップを目的としたものです。たとえば、ワークステーションのホームディレクトリをアーカイブサーバーにコピーするとします。バックアップに関して言えば、rsyncはその仕事に最適なツールです。さらに良いことに、rsyncを使用してデータバックアップを構成する方法を説明する、重要な作成者からのガイドがすでにあります。

SSHコンポーネントを方程式に導入する必要があります。 RsyncはSSHをシームレスにサポートします。つまり、宛先を定義する方法を除いて、すべてが同じままです。救助のためのSSH/SCP構文:

rsync source username @ hostname:destination

例:

rsync -avs --delete -i -h / home / igor / Wallpapers / [email protected]:/home/roger/Pictures
[email protected]のパスワード:
増分ファイルリストの送信
*スクリーンショットの削除_20200516-125442.png
*スクリーンショットの削除_20200516-125302.png
*スクリーンショットの削除_20200516-125252.png
...
*QEMUVirgil.txtの削除
*Fedora32.txtの削除
.d..tp ..... ./

送信11.16Mバイト受信7.94Kバイト203Mバイト/秒
合計サイズは11.15Mスピードアップは1.00

繰り返しになりますが、シームレスな接続のためのキーが必要です。

GUI接続:Dolphinファイルマネージャー

私が言ったように、これを行うには多くの異なる方法があります。 PlasmaデスクトップのデフォルトのファイルマネージャーであるDolphinを使ってデモンストレーションします。 SSH接続をネイティブにサポートしているため、コマンドラインではなくGUIを介して実行することを除いて、基本的に以前に実行したことを実行できます。 DolphinとSSHの使用法の詳細については、別の記事で説明します。そのため、ここでは省略形を示します。

Dolphinは、FISHプロトコルを使用してリモートホストへの接続を確立します。 Dolphinで、Ctrl + Lを押すか、ロケーション行をダブルクリックしてアドレスバーを表示し、次のように記述します。

fish:// username @ destination

Dolphinはパスワードの入力を求めるプロンプトを表示します。これを保存できます。これで完了です。リモートホストに接続しており、任意のファイル操作を実行できます(ユーザーが所有し、サーバーが許可するSSH権限の範囲内で)。

GUIバックアップ:Grsync

これについては前に話しました。 Grsyncは優れたrsyncフロントエンドユーティリティです-私のお気に入りです。これを使用して、さまざまなオプションや除外を含む1つ以上のデータ複製タスクを定義できます。宛先行には、ターミナルウィンドウのrsyncの場合と同じように、username @ hostname:destinationエントリを入力する必要があります。

次に、操作をシミュレート(ドライラン)するか、実際に接続することができます。接続資格情報を保存できるという追加のボーナスが追加されているため、手動で再度認証しなくてもタスクを再実行できます。スケジュールされたデータバックアップタスクに最適です。

結論

さて、あなたは行き​​ます。これで、Linuxマシンを接続する4つの異なる方法があります。これには、コマンドラインとGUIの方法、パスワードベースとパスワードなしの認証、データバックアップ、そしていくつかが含まれます。舞台裏では、すべてSSHですが、それが本当にすばらしいことです。

この記事がお役に立てて実用的であることを願っています。 Linuxボクセンが互いにシームレスに通信できるようにしたい場合は、自分の上司になるためのツールがあります。コマンドラインに自信がある人は、ssh、scp、rsyncで十分ですが、単純なマウスのポイントアンドクリックアクションに熱心な場合は、DolphinとGrsyncが必要な機能を提供します。さて、リストはそれだけではありません。 FTP、SFTP、またはワームホールのようなプログラムを使用することもできます。他のLinuxファイルマネージャーもSSHおよびRsync機能を提供しますが、これは別の記事のトピックです。今日はこれですべてです。


Linux
  1. ncおよびpvコマンドを使用して2台のコンピューター間でファイルを転送する方法

  2. Linux – TtyセッションとXorgセッションを切り替える方法は?

  3. LinuxでBluetoothシリアルポートに接続してデータを送信する方法は?

  1. WindowsとLinuxの間にSSH接続を確立します

  2. LinuxとWindowsコンピューター間でファイルを共有する

  3. Linux – LinuxホストとWindowsゲスト間でファイルを共有しますか?

  1. Linuxでファイルシステムをマウントおよびアンマウントする方法

  2. LinuxとWindows間でファイルを共有および転送する方法

  3. LinuxとWindows間でファイルを共有するにはDropboxをインストールします