すでにサーバーにsshされている間にssh経由でファイルを転送する方法


12

このコマンドを使用してファイルを転送します

scp <localfile> user@host:<destination>

上記のコマンドは、サーバーにSSH接続していない場合にのみ機能します。

すでにsshを使用している場合、ローカルファイルをホストマシンに転送するにはどうすればよいですか?

私はsshを使用しています ssh user@hostname


2
どんなOS?別のターミナルを開き、scpコマンドを使用します
Impulss

1
centOSです。それは私がこれまでやってきたことです。もっと便利なものを期待していた。
2013年

回答:


5

いい質問だ。scp再び、しかし反対の方法。私はそれをやった、そしてそれはここにある:

chris@local ~$ ls hos*
hosts
chris@local ~$ ssh remote
Last login: Fri Mar  8 15:52:25 2013 from local
chris@remote ~$ scp chris@local:hos* .
chris@local's password: 
hosts                                              100% 1850     1.8KB/s   00:00    
chris@remote ~$ ls hos*
hosts
chris@remote ~$ 

追加のために編集:コメントで指摘されているように、これにはリモートコンピューターがローカルコンピューターにアクセスできる必要があります。また、sshdまたは(openssh-server)をローカルマシンにインストールして実行する必要があります。


2
これは、ローカルマシンがリモートマシンからアクセス可能であり、常にそうであるとは限らないと想定しています。
laurent 2013年

しかし、それが本当であれば、うまく機能します。
daviewales 2013年

3

ホストマシンで何が実行されているかを知るのに役立ちます。Linuxを使用している場合、

scp user@host:/path/myfile .

うまくいくはずです。


user @ hostは私が質問で理解したリモートマシンであるため、このコマンドはローカルマシンからリモートマシンにファイルをコピーしませんが、ホストでSSHで接続されていない場合はリモートからローカルにファイルをコピーします。 SSHed。
ローレント2013年

質問にはあいまいさがいくつかあると思います。私には、user@host現在制御していないコンピュータを指しているように見えます。したがって、OPがリモートコンピューターにログインしていない場合user@hostは、リモートコンピューターになります。OPがリモートコンピューターにログインするuser@hostと、ローカルコンピューターになります。私の仮定が正しい場合、この答えは理にかなっています。
daviewales 2013年

daviewales、それがまさに私が質問を解釈した方法でもあります。また、あなたが正解です。user@ hostは、私の意見では、現在使用していないワークステーションを表します。私はそれを私の回答でより明確にするかどうかについて議論しましたが、それが暗示されると考えました。
Josh

とにかく、ユーザーがリモートマシンにログオンしているときにuser @ hostがローカルマシンを表す場合でも(OPがローカルファイルをホストマシンに転送することを望んでいるように)、これは、ローカルマシンがリモートからアクセスできる場合にのみ機能します。オン(通常は同じLANにある場合)であり、リモートマシンがインターネット上にあり、ローカルマシンに固定IPがないシナリオではありません。
ローレント、2013年

1

ローカルマシンに戻る方法がある場合(ローカルマシンはリモートマシンからアクセス可能です-通常、両方のマシンが同じLANにある場合)、リモートマシンからscpを使用すると機能します(scp local:/path-to-file .)。

ローカルマシンにリモートマシンから到達できない場合(通常、リモートがインターネット上のVPSであり、ローカルマシンが動的IPを持っている場合は通常)、ローカルマシンで新しいターミナルを開いてファイルをコピーするのが最善の方法です。

もう1つの方法は、ファイルをコピーするだけで複雑でなくても確実に必要なのは、マシン(またはネットワーク)間にVPNを作成して、両方のマシンに他のマシンから到達可能にし、1つのマシンまたは他のマシンからscpを使用できるようにすることです。


0

リモートシステムにログインしている間(ファイルの場所にcdする方が簡単)sudo scp file_location / file_name user @ host:file_location

リモートシステムからログアウトしている間sudo scp authoried_user @ hostname:file_location / file_name new_location_on_local_machine

脚注:リモートシステムからログアウトしているときに、新しい端末の場合、最初のパスワードはsudoパスワード、2番目のパスワードは承認されたユーザーパスワードになります。その特定の端末で以前にsudoを実行したことがある場合は、許可されたユーザーパスワードのみが必要です。これらに注意してください、それはトリッキーになります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.