Linuxシリーズ解説 - 2つのホスト間でファイルを転送する[scp]コマンドライン

ファイルをコピーするために共有フォルダーを作成するのは不便な場合がありますが、この場合、scp コマンドを使用して 2 つのホスト間でファイルのコピー操作を実現できます。

1. 準備作業 - SSH サービスをインストールします。

scp がリモート コンピュータのファイルをコピーする場合、ssh サービスを通じてリモート コンピュータにアクセスするため、リモート コンピュータには ssh サービスがインストールされている必要があります。以下では、Linux プラットフォームと Windows プラットフォームにそれぞれ ssh サービスをインストールする方法を紹介します。

1.1 Windows プラットフォーム (Win10)

  1. SSHクライアントとサーバーをインストールする
    ここに画像の説明を挿入
  2. ssh サービスの起動と停止
    cmd または powershell ターミナルを呼び出し、状況に応じて次のコマンドを実行します
    。 サービスを開始します。 net start sshd
    サービスを閉じます。 net stop sshd

1.2 Linux プラットフォーム (Ubuntu18.04)

1. openssh-server をインストールします

sudo apt install openssh-server

2. サービスのオープンとサービスのクローズ

#启动服务
sudo systemctl start ssh

#关闭服务
sudo systemctl stop ssh

3. サービスステータスの表示

sudo systemctl status sshd

オン状態:
ここに画像の説明を挿入

無効:
ここに画像の説明を挿入

2. scpコマンドの使用例

基本的な構文:

#文件拷贝
scp 用户名@文件源ip地址:文件源路径 目标路径(本机)

#文件夹拷贝,加-r即可
scp -r 用户名@文件夹源ip地址:文件夹源路径 目标路径(本机)

注:
1. アクセスするホストは ssh サービスを開く必要があります
2. 上記のローカル マシンはオペレーティング マシンを指します。たとえば、ターミナル経由でマシン A にログインする場合、この A はこの時点のローカル マシンになります。時間。

2.1 リモートマシンがLinuxシステムの場合

例: IP 192.100.10.3 のコンピュータ内のファイルを/home/sun/.gitconfigローカルの現在の作業ディレクトリにコピーします。

scp [email protected]:/home/sun/.gitconfig ./

2.2 リモートマシンの時間 Windows システム時間

例: IP 192.100.10.4 のコンピュータ内のファイルをD:\1.txtローカルの現在の作業ディレクトリにコピーします。

scp [email protected]:/D:/1.txt ./

ノート:

  1. 上記の例は、他のコンピュータのファイルをローカルにコピーするものですが、ローカル ファイルを他のコンピュータにコピーしたい場合は、ソース パスとターゲット パスを交換するだけで済みます。
  2. 宛先アドレスと送信元アドレスを両方ともリモート マシンにすることはできません (例: scp [email protected]:/xxx [email protected]:/xxx)。

3. 発生した問題

3.1 ホスト 192.32.1.6 ポート 22 に接続: 接続がタイムアウトしました

sun@pc:~/code$ scp -v 1.txt [email protected]:/E:/share
Executing: program /usr/bin/ssh host 192.32.1.6, user administrator, command scp -v -t /E:/share
OpenSSH_7.6p1 Ubuntu-4ubuntu0.7, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/sun/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.32.1.6 [192.32.1.6] port 22.
debug1: connect to address 192.32.1.6 port 22: Connection timed out
ssh: connect to host 192.32.1.6 port 22: Connection timed out
lost connection

Windows の ssh サーバーが起動していないため接続できません Windows の ssh サービスを起動する方法は以下の通りです
ここに画像の説明を挿入

3.2 アクセス許可が拒否されました。もう一度試してください。

sun@pc:~/code$ scp [email protected]:/E:/gitcommit_template ~/
[email protected]'s password: 
Permission denied, please try again.
[email protected]'s password: 
Permission denied, please try again.
[email protected]'s password: 
[email protected]: Permission denied (publickey,password,keyboard-interactive).

SSH サービスが有効になっていることを確認してもこの問題が発生する場合は、ユーザー名またはパスワードが間違って書き込まれている可能性があります。どちらかが欠落しているadministrtor可能性がありますこの種の問題を過小評価しないでください。多くの場合、長期間にわたって悩まされることになります。administratora

おすすめ

転載: blog.csdn.net/In_engineer/article/details/124961097
おすすめ