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

SCPとSFTPを使用してLinuxホスト間でファイルを安全にコピーする方法

最近、rsyncを見ました 場所間でファイルを同期するためのコマンド。cpを使用してファイルとディレクトリを複製する際の使用法と構文の類似性について説明しました。 指図。その記事では、同じボックス上、ファイルシステム間、またはデバイス間でビットを前後に移動する方法について説明しました。今後の記事では、rsyncについて詳しく説明します。 リモートファイルシステムをローカルバージョンまたはバックアップバージョンと同期させるためのツールとして。この記事では、Linuxsysadminツールボックスで最も便利で使用されているツールの1つであるscpを見ていきたいと思います。 コマンド。

SCPとは何ですか?

セキュアコピー、またはscp 、は古いrcpの安全なバージョンです OpenSSHツールスイートに含まれているツール(現在も使用されていますが、あまり一般的ではありません)。

OpenSSHは、元のSSHセキュア通信プロトコルのBSDフォークとして開始されましたが、その後「非フリー」として再ライセンスされたため、Linuxでは一般的に利用できません。 OpenSSHは引き続きBSDライセンスの下で維持されており、幅広いプラットフォームで利用できます。キー生成、scpなど、安全なリモートアクセスのためのいくつかの一般的なツールが含まれています 、およびsftp (FTPの安全なバージョン。これについては後で説明します。)

最近、OpenSSH開発者は、scpを検討していることを示しています。 非推奨になります(「時代遅れで、柔軟性がなく、簡単に修正できない」と彼らは信じています)。 OpenSSHの将来のリリースでいつ利用できなくなるかは不明ですが、すぐに廃止されるとは想像しがたいです。

SCPを使用する

scpの有用性 そのシンプルさにあります。シェルからリモートファイルシステムにファイルをすばやく移動するために使用します:

skipworthy ~ scp ./enable/foo/testfoo showme:/home/skipworthy/enable

skipworthy@showme's password:

testfoo 100% 25 8.0KB/s 00:00

やさしい。離れた場所からもファイルを入手できます:

skipworthy ~ scp showme:/home/skipworthy/enable/demofoo ~/enable/

skipworthy@showme's password:

demofoo 100% 0 0.0KB/s 00:00

 skipworthy ~ ls ./enable

bar demofoo foo

使用可能な接続オプションは、sshの場合と同じです。 。例:

skipworthy ~ scp -P 2020 -i ~/.ssh/id_rsa ./test.txt showme:/home/skipworthy/enable/

test.txt 100% 0 0.0KB/s 00:00    

-P sshのポートを指定します 接続、-i sshを指定します 認証に使用するidキー:これらのオプションは両方ともスクリプトに役立ちます。 scp -Pに注意してください ssh -pとは異なります ポートを指定します。上記の例では、sshの場所を設定しました キー(~/.ssh/id_rsa )—これもOpenSSHツールキットを使用して生成しました—リモートデバイスへのアクセスを認証します。 SSHファイルのコピーについてはこちらをご覧ください。

したがって、scpを見ることができます あなたの指先で持っている本当に便利なツールです。安全な環境でこのツールを使用することの知恵についての議論がいくつかあるので、YMMV。読んで自分で決めることをお勧めします。

[次のこともお勧めします:システム管理者ツール:rsyncを使用してバックアップ、復元、ファイル同期を管理する]

代替案

なんらかの理由でscpを使用できない場合はどうなりますか ?非常に使いやすい他の2つのオプションをお勧めします:rsync 、ここで説明しましたが、別の記事でさらに詳しく説明します。sftp 。これらのオプションはどちらもscpほど便利ではありませんが 、どちらにもいくつかの便利な機能があります。

sftp ほぼそのように聞こえます:セキュアFTP。 SSH管理の接続を介したFTPのように機能します。 「1つで完了」のscpほど簡単に使用することはできませんが コマンドを使用すると、より高度なファイルシステムオプションの範囲と、リモートファイルシステムにインタラクティブに接続する機能が提供されます。ターゲットファイルシステムがsftp用に構成されている必要があります アクセス。

sftpに接続しましょう サーバーをインタラクティブに:

skipworthy ~ sftp enable@ganymede

enable@ganymede's password:

Connected to ganymede.

sftp> pwd

Remote working directory: /upload

sftp> mkdir test

sftp> ls -al

drwxr-xr-x 3 1002 1002 18 Nov 24 21:53 .

drwxr-xr-x 3 0 1002 20 Nov 24 21:33 ..

drwxr-xr-x 2 1002 1002 6 Nov 24 21:53 test

タブを押した場合 2回、シェルで使用可能なコマンドのリストを確認できます。

sftp>

bye cd chdir chgrp chmod chown df dir       

exit get help lcd lchdir lls lmkdir ln        

lpwd ls lumask mkdir mget mput progress put       

pwd quit reget rename reput rm rmdir symlink   

version ! ?         

したがって、リモートファイルシステムと対話できることがわかります。繰り返しますが、主な欠点は、ターゲットをsftp用に構成する必要があることです。 特定のディレクトリへのアクセスとアクセスは、そのシステムの管理者が構成および制限する必要があります。これにより、scpよりも安全性が低くなりますが、便利ではありません。 。また、scpのような即時のファイル転送を行うことは実際には不可能であることに注意してください。 、スクリプトを記述してシェルエイリアスを挿入することで、これがスムーズに機能するようにすることができます。

[セキュリティについて考えていますか?ハイブリッドクラウドのセキュリティを強化し、ビジネスを保護するためのこの無料ガイドをご覧ください。 ]

まとめ

最後の注意:これらのツールはどちらも、Linuxシステム管理の非常に重要な部分であるSSHツールボックスに依存しているため、慣れることを強くお勧めします。 Enable Sysadminライターによるこれらの優れた記事を検討してください:

  • SSHが安全な通信を確立する方法
  • システムでSSHアクセスを保護する8つの方法
  • 公開鍵と秘密鍵のペアを使用したパスワードなしのSSH

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

  2. LinuxでsFTPを使用してファイル/ディレクトリをアップロードまたはダウンロードする方法

  3. SCPを使用してファイルを安全に転送する方法

  1. Crocを使用してコンピュータ間でファイルとフォルダを安全に転送する

  2. SCPとFTPを使用してLinuxのサーバー間でファイルを転送する方法

  3. Linux で SCP コマンドを使用してファイルを安全に転送する方法

  1. LinuxとFreeDOSの間でファイルをコピーする

  2. Linuxでファイルとディレクトリをコピーする方法

  3. scp を使用して複数のファイルを同時にコピーする方法