OpenSSH : SSH ファイル転送 (CentOS)2021/02/22 |
SSH を利用して、暗号化通信によるセキュアなファイル転送をすることができます。
以下は CentOS Stream クライアントの例ですが、こちらの [8] に記載の通り、Windows 10 バージョン 1803
以降を使用中の場合は OpenSSH クライアントが標準搭載されているため、Windows PowerShell (または コマンドプロンプト) からも下記と同様の操作で
[scp], [sftp] コマンドでのファイル転送が可能です。
|
|
[1] | SCP (Secure Copy) によるファイルコピーの例です。 |
# 書式 ⇒ scp [オプション] コピー元 コピー先
# ローカルホストの [test.txt] を リモートホスト [node01.srv.world] 上の [cent] ユーザーのホームディレクトリ直下へコピー [cent@dlp ~]$ scp ./test.txt cent@node01.srv.world:~/ cent@node01.srv.world's password: # 接続ユーザーのパスワード test.txt 100% 10 0.0KB/s 00:00 # リモートホスト [node01.srv.world] 上の [/home/cent/test.txt] を ローカルホストのカレントディレクトリにコピー [cent@dlp ~]$ scp cent@node01.srv.world:/home/cent/test.txt ./test.txt cent@node01.srv.world's password: test.txt 100% 10 0.0KB/s 00:00 |
[2] | SFTP (SSH File Transfer Protocol) によるファイル転送です。 SFTP サーバー機能は CentOS ではデフォルトで有効になっていますが、もし有効になっていない場合は [/etc/ssh/sshd_config] に [Subsystem sftp /usr/libexec/openssh/sftp-server] の行を追加して [sshd] をリロードしておきます。 |
# sftp [オプション] [ユーザー@ホスト名] [redhat@dlp ~]$ sftp cent@node01.srv.world cent@node01.srv.world's password: # ログインユーザーのパスワード Connected to prox.srv.world. sftp> # リモートホストのカレントディレクトリ表示 sftp> pwd Remote working directory: /home/cent # ローカルホストのカレントディレクトリ表示 sftp> !pwd /home/redhat # リモートホストのカレントディレクトリのファイル一覧表示 sftp> ls -l drwxrwxr-x 2 cent cent 7 Feb 9 21:33 public_html -rw-rw-r-- 1 cent cent 10 Feb 8 22:53 test.txt # ローカルホストのカレントディレクトリのファイル一覧表示 sftp> !ls -l total 4 -rw-rw-r-- 1 redhat redhat 10 Jul 29 21:31 test.txt # ディレクトリ移動 sftp> cd public_html sftp> pwd Remote working directory: /home/cent/public_html # ローカルホストのファイルをリモートホストにリネームアップロード sftp> put test.txt redhat.txt Uploading test.txt to /home/cent/redhat.txt test.txt 100% 10 0.0KB/s 00:00 sftp> ls -l drwxrwxr-x 2 cent cent 6 Feb 7 21:33 public_html -rw-rw-r-- 1 cent cent 10 Feb 7 21:39 redhat.txt -rw-rw-r-- 1 cent cent 10 Feb 7 22:53 test.txt # ローカルホストの複数ファイルをリモートホストに一括アップロード sftp> put *.txt Uploading test.txt to /home/cent/test.txt test.txt 100% 10 0.0KB/s 00:00 Uploading test2.txt to /home/cent/test2.txt test2.txt 100% 0 0.0KB/s 00:00 sftp> ls -l drwxrwxr-x 2 cent cent 6 Feb 7 21:33 public_html -rw-rw-r-- 1 cent cent 10 Feb 7 21:39 redhat.txt -rw-rw-r-- 1 cent cent 10 Feb 7 21:45 test.txt -rw-rw-r-- 1 cent cent 10 Feb 7 21:46 test2.txt # リモートホストのファイルをローカルホストにダウンロード sftp> get test.txt Fetching /home/cent/test.txt to test.txt /home/cent/test.txt 100% 10 0.0KB/s 00:00 # リモートホストの複数ファイルをローカルホストに一括ダウンロード sftp> get *.txt Fetching /home/cent/redhat.txt to redhat.txt /home/cent/redhat.txt 100% 10 0.0KB/s 00:00 Fetching /home/cent/test.txt to test.txt /home/cent/test.txt 100% 10 0.0KB/s 00:00 Fetching /home/cent/test2.txt to test2.txt /home/cent/test2.txt 100% 10 0.0KB/s 00:00 # リモートホストのカレントディレクトリにディレクトリ作成 sftp> mkdir testdir sftp> ls -l drwxrwxr-x 2 cent cent 6 Feb 7 21:33 public_html -rw-rw-r-- 1 cent cent 10 Feb 7 21:39 redhat.txt -rw-rw-r-- 1 cent cent 10 Feb 7 21:45 test.txt -rw-rw-r-- 1 cent cent 10 Feb 7 21:46 test2.txt drwxrwxr-x 2 cent cent 6 Feb 7 21:53 testdir # リモートホストのカレントディレクトリ内のディレクトリ削除 sftp> rmdir testdir rmdir ok, `testdir' removed sftp> ls -l drwxrwxr-x 2 cent cent 6 Feb 7 21:33 public_html -rw-rw-r-- 1 cent cent 10 Feb 7 21:39 redhat.txt -rw-rw-r-- 1 cent cent 10 Feb 7 21:45 test.txt -rw-rw-r-- 1 cent cent 10 Feb 7 21:46 test2.txt # リモートホストのファイル削除 sftp> rm test2.txt Removing /home/cent/test2.txt sftp> ls -l drwxrwxr-x 2 cent cent 6 Feb 7 21:33 public_html -rw-rw-r-- 1 cent cent 10 Feb 7 21:39 redhat.txt -rw-rw-r-- 1 cent cent 10 Feb 7 21:45 test.txt # ![command] で任意のコマンド実行 sftp> !cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin ... ... redhat:x:1001:1001::/home/redhat:/bin/bash # 終了 sftp> quit 221 Goodbye. |
Sponsored Link |