FreeBSD 14
Sponsored Link

OpenSSH : SSH ファイル転送 (FreeBSD)2023/12/19

 
SSH を利用して、暗号化通信によるセキュアなファイル転送をすることができます。
[1] SCP (Secure Copy) によるファイルコピーの例です。
# 書式 ⇒ scp [オプション] コピー元 コピー先
# ローカルホストの [test.txt] を リモートホスト [node01.srv.world] 上の [freebsd] ユーザーのホームディレクトリ直下へコピーする

freebsd@dlp:~ $
scp ./test.txt freebsd@node01.srv.world:~/

(freebsd@node01.srv.world) Password for freebsd@node01.srv.world:
test.txt                100% 1003     1.1MB/s   00:00

# リモートホスト [node01.srv.world] 上の [/home/freebsd/test.txt] を ローカルホストのカレントディレクトリにコピーする

freebsd@dlp:~ $
scp freebsd@node01.srv.world:/home/freebsd/test.txt ./test2.txt

(freebsd@node01.srv.world) Password for freebsd@node01.srv.world:
test.txt                100% 1003     1.1MB/s   00:00
[2] SFTP (SSH File Transfer Protocol) によるファイル転送です。
SFTP サーバー機能は FreeBSD ではデフォルトで有効になっていますが、もし有効になっていない場合は [/etc/ssh/sshd_config] に [Subsystem sftp /usr/libexec/sftp-server] の行を追加して sshd をリロードすれば OK です。
# sftp [オプション] [ユーザー@ホスト名]

freebsd@dlp:~ $
sftp freebsd@node01.srv.world

(freebsd@node01.srv.world) Password for freebsd@node01.srv.world:    # ログインユーザーのパスワード
Connected to node01.srv.world.
sftp>

# リモートホストのカレントディレクトリ表示
sftp> pwd
Remote working directory: /home/freebsd

# ローカルホストのカレントディレクトリ表示
sftp> !pwd
/home/freebsd

# リモートホストのカレントディレクトリのファイル一覧表示
sftp> ls -l
-rw-r--r--    ? freebsd  freebsd      1003 Dec 19 10:12 test.txt

# ローカルホストのカレントディレクトリのファイル一覧表示
sftp> !ls -l
total 9
-rw-r--r--  1 freebsd freebsd 1003 Dec 19 10:11 test.txt
-rw-r--r--  1 freebsd freebsd 1003 Dec 19 10:14 test2.txt

# ディレクトリを作成して移動
sftp> cd testdir
sftp> pwd
Remote working directory: /home/freebsd/testdir

# ローカルホストのファイルをリモートホストにリネームアップロード
sftp> cd ../
sftp> put test.txt freebsd.txt
Uploading test.txt to /home/freebsd/freebsd.txt
test.txt           100% 1003     1.1MB/s   00:00
sftp> ls -l
-rw-r--r--    ? freebsd  freebsd      1003 Dec 19 10:21 freebsd.txt
-rw-r--r--    ? freebsd  freebsd      1003 Dec 19 10:12 test.txt
drwxr-xr-x    ? freebsd  freebsd         2 Dec 19 10:18 testdir

# ローカルホストの複数ファイルをリモートホストに一括アップロード
sftp> put *.txt
Uploading test.txt to /home/freebsd/test.txt
test.txt                              100% 1003     1.1MB/s   00:00
Uploading test2.txt to /home/freebsd/test2.txt
test2.txt                            100% 1003     1.2MB/s   00:00
sftp> ls -l
-rw-r--r--    ? freebsd  freebsd      1003 Dec 19 10:21 freebsd.txt
-rw-r--r--    ? freebsd  freebsd      1003 Dec 19 10:22 test.txt
-rw-r--r--    ? freebsd  freebsd      1003 Dec 19 10:22 test2.txt
drwxr-xr-x    ? freebsd  freebsd         2 Dec 19 10:18 testdir

# リモートホストのファイルをローカルホストにダウンロード
sftp> get test.txt
Fetching /home/freebsd/test.txt to test.txt
test.txt               100% 1003     1.1MB/s   00:00

# リモートホストの複数ファイルをローカルホストに一括ダウンロード
sftp> get *.txt
Fetching /home/freebsd/freebsd.txt to freebsd.txt
freebsd.txt                 100% 1003     1.1MB/s   00:00
Fetching /home/freebsd/test.txt to test.txt
test.txt                    100% 1003     1.1MB/s   00:00
Fetching /home/freebsd/test2.txt to test2.txt
test2.txt                   100% 1003     1.1MB/s   00:00

# リモートホストのディレクトリ削除
sftp> rmdir testdir
rmdir ok, `testdir' removed
sftp> ls -l
-rw-r--r--    ? freebsd  freebsd      1003 Dec 19 10:21 freebsd.txt
-rw-r--r--    ? freebsd  freebsd      1003 Dec 19 10:22 test.txt
-rw-r--r--    ? freebsd  freebsd      1003 Dec 19 10:22 test2.txt

# リモートホストのファイル削除
sftp> rm test2.txt
Removing /home/freebsd/test2.txt
sftp> ls -l
-rw-r--r--    ? freebsd  freebsd      1003 Dec 19 10:21 freebsd.txt
-rw-r--r--    ? freebsd  freebsd      1003 Dec 19 10:22 test.txt

# ![command] で任意のコマンド実行
sftp> !cat /etc/passwd
root:*:0:0:Charlie &:/root:/bin/sh
toor:*:0:0:Bourne-again Superuser:/root:
daemon:*:1:1:Owner of many system processes:/root:/usr/sbin/nologin
operator:*:2:5:System &:/:/usr/sbin/nologin
bin:*:3:7:Binaries Commands and Source:/:/usr/sbin/nologin
.....
.....

# 終了
sftp> quit
関連コンテンツ