SSHでのファイル転送方法をご紹介!

SSHでのファイル転送方法をご紹介!のアイキャッチイメージ

SSHでのファイル転送方法とは?


今回は、SSHでのファイル転送方法について説明します。scp、sftp、rsyncコマンドを利用して、ファイル転送する手順を紹介します。OpenSSHの公式サイトでは「scpを使うのは非推奨」と記載しています。ファイル転送にはsftp、rsyncを使用するとよいでしょう。

ファイル転送方法に興味のある方はぜひご覧ください。

SSH環境

ここでは、WSL2(Windows Subsystem for Linux 2)のSUSE LinuxからubuntuにSSH接続してファイル転送します。sshクライアント側(SUSE Linux)の環境は以下です。

sshサーバ側(ubuntu)の環境は以下です。sshのサービスを起動しておいてください。

また、事前にクライアント側にconfigファイルを作成しておきます。

scpコマンド

scpコマンドでファイル転送する方法を紹介します。サーバにファイル転送するには以下のように記述します。

サーバからファイル転送するには以下のように記述します。

ワイルドカード指定でサーバにファイル転送するには以下のように記述します。

ワイルドカード指定でサーバからファイル転送するには以下のように記述します。

タイムスタンプや権限を保持したままファイル転送するには、-pオプションを指定します。

再帰的にファイル転送するには、-rオプションを指定します。転送前のクライアント側のフォルダ構成は以下とします。

再帰的にファイル転送してみます。

sftpコマンド

sftpコマンドでファイル転送する方法を紹介します。まずはサーバ側と接続します。

クライアント側でディレクトリを移動するには、lcdコマンドを使用します。

サーバ側でディレクトリを移動するには、cdコマンドを使用します。

クライアント側でlsコマンドを実行するには、llsコマンドを実行します。

サーバ側では通常のlsコマンドを実行します。

サーバからクライアントにファイル転送するには、getとします。

クライアントからサーバにファイル転送するには、putとします。

getやputはワイルドカード指定も可能です。

接続を終了するにはbyeコマンドを実行します。

タイムスタンプや権限を保持したままファイル転送するには、-pオプションを指定します。また、再帰的にファイル転送するにはrオプションを指定します。

rsyncコマンド

rsyncコマンドでファイル転送する方法を紹介します。rsyncコマンドはディレクトリを同期するコマンドですが、同期の仕組みを利用してファイル転送が可能です。クライアントのフォルダ構成が以下とします。

rsyncコマンドでサーバ側と同期します。(サーバからファイル転送します。)

コマンド実行後のクライアントのフォルダ構成は以下のようになります。

まとめ

SSHでのファイル転送方法について説明しました。scp、sftp、rsyncコマンドを利用して、ファイル転送する手順を紹介しました。OpenSSHの公式サイトでは「scpを使うのは非推奨」と記載しています。ファイル転送にはsftp、rsyncを使用するとよいでしょう。

ぜひご自身でコマンドを書いて、理解を深めてください。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。